JavaScript 中的 7 个疯狂之处:爱它还是恨它
JavaScript 是我们都喜欢的语言……有时甚至想用它敲打键盘。它无处不在!从让你的按钮跳动到凌晨 2 点因无人能解释的原因导致你的网站崩溃。
JavaScript 功能强大、奇特且非常奇怪。让我们来谈谈它所做的一些最疯狂的事情。
1.“NaN” 是一个数字吗?
你没看错。`“NaN”` 代表“非数字”,但 JavaScript 将其归类为数字。这就像有人说,“我不饿……但我们去吃饭吧。”**
console.log(typeof NaN); // "number"
为什么?JavaScript?为什么?
2. 添加数组?当然可以。
当你添加两个数组时会发生什么?你认为 JavaScript 会抛出错误,对吧?不。它只是……将它们连接成一个字符串。
console.log([1, 2] + [3, 4]); // "1,23,4"
这不是添加;这是胡说八道。但是,嘿,这就是 JavaScript。
3.真+真=2?
在你的控制台中尝试一下:
console.log(true + true); // 2
是的。因为 true 被视为 1,而 JavaScript 认为 **“这里的数学很合理!”** 但事实并非如此,但让我们假装它有道理。
4. 神秘的 undefined 和 null
`undefined` 表示尚未赋值。`null` 表示为空。
但它们真的一样吗?不一样。
console.log(undefined == null); // true console.log(undefined === null); // false
感到困惑?我也是。每个新 JavaScript 开发人员都感到困惑。
5. this 问题
啊,`this`。JavaScript 学习者的祸根。在一种情况下,this 是一个对象。在另一种情况下,它是 `undefined`。在箭头函数中?它完全是另一回事。
const obj = { name: "JavaScript", regular: function () { console.log(this.name); }, arrow: () => { console.log(this.name); }, }; obj.regular(); // "JavaScript" obj.arrow(); //
每当你以为自己理解了“this”时,JavaScript 就会突然让你措手不及。
6. 双等号很懒
在 JavaScript 中,`==` 并不总是关心类型。因此,它会尝试为您转换内容。这很好……直到它变得不好。
console.log(0 == "0"); // true console.log(0 == []); // true console.log([] == ""); // true
帮自己一个忙:改用 `===`。永远如此。
7. 无限是一个数字
JavaScript 中最大的数字是多少?无穷大。比最小的还小的是什么?负无穷大。没错,你可以用它们做数学运算。
console.log(Infinity - Infinity); // NaN console.log(Infinity > 1000000); // true
JavaScript 只是随意地体现了数学的相对性。
如何检查 JavaScript 中对象中是否存在某个键 | Tajammal Maqbool
您是否曾深陷 JavaScript 代码并想知道如何检查某个键是否存在?在此博客中,我们将介绍 4 种不同的方法。
JavaScript 中的时间事件:指南 | Tajammal Maqbool
JavaScript 很神奇,不是吗?它使网站具有交互性和活力。它最酷的功能之一是时间事件。不要担心它听起来很技术性;我会分解它。
JavaScript Splice - 终极数组方法 | Tajammal Maqbool
掌握 JavaScript 强大的 splice 方法!学习如何轻松添加、移除和替换数组元素。使用此终极指南简化您的代码。
为什么我们仍然喜欢它
尽管 JavaScript 有种种怪癖,但它真的……棒极了。它能让你构建整个应用程序,让网站具有交互性,甚至控制机器人!这有点疯狂,但这正是它的魅力所在。
JavaScript 教会我们耐心,让我们欢笑(和哭泣),并最终完成任务。拥抱奇特之处。