有人可以解释 null 和 undefined 的这个简单概念,更具体地说,单双和三等于,或者你能 link 最好的解释
Can someone explain this simple concept of null and undefined, more specifically single double & triple equals, or can you link the best explanation
在同一个运算符中,null 如何等于 undefined 而不等于 undefined。
未定义 == null
true
未定义!== 空
true
未定义===空
false
未定义!=空
false
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
== 在执行实际比较(进行类型强制)之前将变量值转换为相同类型
=== 不进行类型强制转换并且 returns 仅当 值和类型 相同时才为真正在比较的两个变量。
让我们来看一些例子:
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!
请在下面找到我的答案。
"==" 在进行比较之前强制转换变量的类型。
一世。所以 undefined == null 是真的,因为两个变量都强制为假(因为它们都表示一个空值)并且 post 进行比较使它们相等。
!== 进行严格比较,所以类型没有改变,如果是 undefined 则类型是“undefined”,如果是 null 则类型是“object”,可以使用 typeof 验证。
二。所以由于类型不匹配,!== return true 即未定义 !== null.
三。同样的方式 === 进行严格比较,所以 undefined === null 是 false,因为类型只是不同
四。最后 undefined != null 为 false,因为 != like == 将变量的类型强制为 false,然后进行比较。因此它们似乎都等于 != 而它 return false.
在同一个运算符中,null 如何等于 undefined 而不等于 undefined。
未定义 == null
true
未定义!== 空
true
未定义===空
false
未定义!=空
false
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
== 在执行实际比较(进行类型强制)之前将变量值转换为相同类型
=== 不进行类型强制转换并且 returns 仅当 值和类型 相同时才为真正在比较的两个变量。
让我们来看一些例子:
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!
请在下面找到我的答案。
"==" 在进行比较之前强制转换变量的类型。 一世。所以 undefined == null 是真的,因为两个变量都强制为假(因为它们都表示一个空值)并且 post 进行比较使它们相等。
!== 进行严格比较,所以类型没有改变,如果是 undefined 则类型是“undefined”,如果是 null 则类型是“object”,可以使用 typeof 验证。
二。所以由于类型不匹配,!== return true 即未定义 !== null.
三。同样的方式 === 进行严格比较,所以 undefined === null 是 false,因为类型只是不同
四。最后 undefined != null 为 false,因为 != like == 将变量的类型强制为 false,然后进行比较。因此它们似乎都等于 != 而它 return false.