Leetcode
Leetcode copied to clipboard
【深入理解JS核心技术】9. == 和 === 运算符有什么区别
JavaScript 提供了严格(===, !==) 和类型转换(==, !=) 相等比较。严格运算符考虑变量的类型,而非严格运算符根据变量的值进行类型校正/转换。严格的运算符遵循以下不同类型的条件,
- 当两个字符串具有相同的字符序列、相同的长度和对应位置的相同字符时,它们是严格相等的。
- 当两个数字在数值上相等时,它们是严格相等的。即,具有相同的数值。这里面有两种特殊情况,
- NaN 不等于任何东西,包括 NaN。
- 正零和负零彼此相等。
- 如果两个布尔操作数都为真或都为假,则两个布尔操作数严格相等。
- 如果两个对象引用同一个对象,则它们是严格相等的。
- Null 和 Undefined 类型不等于 ===,但等于 ==。即,null===undefined --> false 但 null==undefined --> true
0 == false // true
0 === false // false
1 == "1" // true
1 === "1" // false
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
[]==[] or []===[] //false, refer different objects in memory
{}=={} or {}==={} //false, refer different objects in memory
未完结!更多内容尽情期待下一节~
【深入理解JS核心技术】欢迎各位观众老爷,求点赞,求关注,求转发~