提问人: 提问时间:5/10/2021 更新时间:5/10/2021 访问量:1583
有人可以解释一下这个简单的 null 和 undefined 概念,更具体地说是单双倍和三倍等于,或者你能链接最好的解释 [duplicate]
Can someone explain this simple concept of null and undefined, more specifically single double & triple equals, or can you link the best explanation [duplicate]
问:
在同一运算符中,null 如何等于 undefined 和不等于 undefined。
未定义 == 空
真
未定义 !== 空
真
未定义 === 空
假
未定义 != 空
假
答:
Undefined 和 null 是空变量。但要理解上面的内容,你必须了解比较运算符。== 是一个可以转换的比较运算符。=== 真正测试它是否相同,而无需进行类型转换。所以 null 实际上与 undefined 相同。当你第一次想到它时,它有点难以理解,但它真的没有那么难。一些例子:
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
评论
==
... ? ... : ...
undefined
let foo;
let foo; console.log(foo);
console.log(foo); let foo;
null
undefined
==在执行实际比较之前将变量值转换为相同的类型(进行类型强制)
===不执行类型强制,仅当所比较的两个变量的值和类型相同时才返回 true。
让我们看一些例子:
console.log(5 == "5"); // no type coercion is being made - hence, the result is true.
console.log(5 === "5"); // type coercion is being made, value is the same but the data types are not (number vs string);
console.log(undefined == null); // should be true because type coercion is not being made and the data values are both falsy!
console.log(undefined !== null); // should be true cause type coercion is being made and the data types are differnt!
console.log(undefined === null); // // should be false cause type coercion is being made and the data types are differnt.
console.log(undefined != null); // should be false cause type coercion is not being made and the data values are both falsy!
评论
null
undefined
请在下面找到我的答案。
“==”在进行比较之前强制变量的类型。 i. 所以 undefined == null 为 true,因为两个变量都强制为 false(因为它们都表示一个空值),并且进行了比较,使它们相等。
!== 进行严格的比较,因此类型不会更改,如果为 undefined,则类型为 “undefined”,如果为 null,则类型为 “object”,这可以使用 typeof 进行验证。
ii. 因此,由于类型不匹配,!== return true 即 undefined !== null。
iii. 同样的方式 === 进行严格的比较,因此未定义的 === null 是假的,因为类型只是不同
iv. 最后,未定义的 != null 是 false,因为 != like == 强制变量的类型为 false,然后进行比较。因此,它们似乎都等于 !=,并且返回 false。
评论
==
===
==
===
typeof