JavaScript 是我们都喜欢的语言……有时甚至想敲键盘。它无处不在!从让你的按钮起舞,到凌晨 2 点破坏你的网站,原因无人能解释。
javascript 非常强大、古怪而且非常奇怪。让我们来谈谈它所做的一些最疯狂的事情。
1.“nan”是一个数字吗?
你没看错。 “nan”代表“不是数字”,但 javascript 将其归类为数字。就像有人说,“我不饿……但是我们去吃饭吧。”
console.log(typeof nan); // "number"
2. 添加数组?当然,为什么不呢。
添加两个数组时会发生什么?你可能认为 javascript 会抛出错误,对吧?没有。它只是……将它们连接成一个字符串。
console.log([1, 2] + [3, 4]); // "1,23,4"
这不是加法,而是加法。这是无稽之谈。但是,嘿,这就是适合您的 javascript。
3.真 真=2?
在控制台中尝试此操作:
console.log(true + true); // 2
是的。因为 true 被视为 1 并且 javascript 认为,“数学在这里有意义!”它没有,但让我们假设它有意义。
立即学习“Java免费学习笔记(深入)”;
4. 神秘的未定义和空
未定义意味着某些东西还没有被赋值。 null 表示它是空的。
但它们是一样的吗?没有。
console.log(undefined == NULL); // true console.log(undefined === null); // false
困惑吗?我也是。每个新的 javascript 开发人员也是如此。
5.这个问题
啊,这个。 javascript 学习者的祸根。在一种情况下,这是一个对象。在另一个情况下,它是未定义的。在箭头函数中?这完全是另一回事。
const obj = { name: "javascript", regular: function () { console.log(this.name); }, arrow: () => { console.log(this.name); }, }; obj.regular(); // "javascript" obj.arrow(); //
每当你认为你理解了这一点时,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 splice – 终极数组方法 |塔贾玛·马克布尔
掌握javascript强大的拼接方法!了解如何轻松添加、删除和替换数组元素。通过这个终极指南简化您的代码。
为什么我们无论如何都喜欢它
尽管 javascript 有其怪异之处,但它……令人惊叹。它可以让您构建整个应用程序、使网站具有交互性,甚至可以控制机器人!这有点疯狂,但这就是它的魅力的一部分。
javascript 教会我们耐心,让我们笑(和哭),并最终完成工作。拥抱怪异。