javascript 是我们都喜欢的语言……有时甚至想敲键盘。它无处不在!从让你的按钮起舞,到凌晨 2 点破坏你的网站,原因无人能解释。
javascript 非常强大、古怪而且非常奇怪。让我们来谈谈它所做的一些最疯狂的事情。
你没看错。 “nan”代表“不是数字”,但 javascript 将其归类为数字。就像有人说,“我不饿……但是我们去吃饭吧。”
console.log(typeof nan); // "number"
为什么,javascript?为什么?
添加两个数组时会发生什么?你可能认为 javascript 会抛出错误,对吧?没有。它只是……将它们连接成一个字符串。
console.log([1, 2] + [3, 4]); // "1,23,4"
这不是加法,而是加法。这是无稽之谈。但是,嘿,这就是适合您的 javascript。
在控制台中尝试此操作:
console.log(true + true); // 2
是的。因为 true 被视为 1 并且 javascript 认为,“数学在这里有意义!”它没有,但让我们假设它有意义。
立即学习“Java免费学习笔记(深入)”;
未定义意味着某些东西还没有被赋值。 null 表示它是空的。
但它们是一样的吗?没有。
console.log(undefined == null); // true console.log(undefined === null); // false
困惑吗?我也是。每个新的 javascript 开发人员也是如此。
啊,这个。 javascript 学习者的祸根。在一种情况下,这是一个对象。在另一个情况下,它是未定义的。在箭头函数中?这完全是另一回事。
const obj = {
name: "javascript",
regular: function () {
console.log(this.name);
},
arrow: () => {
console.log(this.name);
},
};
obj.regular(); // "javascript"
obj.arrow(); //
每当你认为你理解了这一点时,javascript 就会把你的地毯从你下面拉出来。
在 javascript 中,== 并不总是关心类型。因此,它会尝试为您转换内容。这很好......直到它不是。
console.log(0 == "0"); // true console.log(0 == []); // true console.log([] == ""); // true
帮自己一个忙:使用 === 代替。总是。
javascript 中最大的数字是多少?无穷大。什么比最小的还小?负无穷大。是的,你可以用它们做数学。
console.log(Infinity - Infinity); // NaN console.log(Infinity > 1000000); // true
javascript 只是随意地证明了数学是相对的。
尽管 javascript 有其怪异之处,但它......令人惊叹。它可以让您构建整个应用程序、使网站具有交互性,甚至可以控制机器人!这有点疯狂,但这就是它的魅力的一部分。
javascript 教会我们耐心,让我们笑(和哭),并最终完成工作。拥抱怪异。
以上就是JavaScript 中的疯狂事物:爱它还是恨它的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号