📜  如果奇怪的 js - Javascript (1)

📅  最后修改于: 2023-12-03 14:53:22.708000             🧑  作者: Mango

如果奇怪的 js - Javascript

当我们想到Javascript时,大多数人会想到一种方便的脚本语言,可以轻松地在网页上实现动态效果,交互性和用户体验。但是,Javascript也有一些令人意想不到的奇怪的行为和功能,这些可能会让一些开发人员感到困惑。

不等于不等于

在Javascript中,我们通常使用!=运算符来检查两个值是否不相等。但是,Javascript也提供了!==运算符,用于执行不完全相等(或类型)比较。

console.log(1 != '1'); // false
console.log(1 !== '1'); // true
零除以零

在数学中,零不能被除以任何数字,否则会导致无限大的结果。但在Javascript中,零被零除实际上会得到NaN(不是数字)的结果!

console.log(0 / 0); // NaN
摇头狗

¯\_(ツ)_/¯这个表情符号可能在Javascript中有奇怪的用处。实际上,这是一个合法的变量名,它可以用来存储任何值。

const ¯\_(ツ)_/¯ = 'Hello World';
console.log(¯\_(ツ)_/¯); // Hello World
隐式类型转换

Javascript是一种弱类型语言,因此它可能会自动进行隐式类型转换。例如,当我们与字符串连接时,Javascript会将其他数据类型转换为字符串。

console.log(1 + '1'); // '11'
console.log(true + true); // 2
全局变量

在Javascript中,如果我们没有使用varletconst关键字定义变量,它将自动成为全局变量。这可能会导致意想不到的行为,并且我们应该始终避免在全局范围内定义变量。

function foo() {
  bar = 'hello'; // 隐式定义全局变量
}

foo();
console.log(bar); // 'hello'

以上是一些奇怪但又有趣的Javascript行为和功能。尽管可能会导致一些困惑,但了解它们可以使我们更好地理解Javascript的工作方式,并更好地编写代码。