Categories: 前端开发

Javascript:== 和 === 运算符有什么区别?

JavaScript 提供了严格(===, !==) 和类型转换(==, !=) 相等比较。严格运算符考虑变量的类型,而非严格运算符根据变量的值进行类型校正/转换。严格的运算符遵循以下不同类型的条件,

  1. 当两个字符串具有相同的字符序列、相同的长度以及相应位置的相同字符时,它们是严格相等的。
  2. 当两个数字在数值上相等时,它们严格相等。即,具有相同的数值。这里有两种特殊情况,

NaN 不等于任何东西,包括 NaN。
正零和负零彼此相等。

  1. 如果两个布尔操作数都为真或都为假,则两个布尔操作数严格相等。
  2. 如果两个对象引用同一个对象,则它们严格相等。
  3. Null 和 Undefined 类型与 === 不相等,但与 == 相等。即, null===undefined --> falsenull==undefined --> true
    一些涵盖上述情况的例子:
作者:海拥
链接:https://www.nowcoder.com/discuss/991813#1
来源:牛客网

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, 引用内存中的不同对象
{}=={} or {}==={} //false, 引用内存中的不同对象
terry

这个人很懒,什么都没有留下~

Recent Posts

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

4 天 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

2 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

2 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

2 周 ago

聊聊React和Vue组件更新的实现及区别

React 和 Vue 都是当…

3 周 ago