LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 406|回复: 0

严格相等

[复制链接]
发表于 2024-2-18 23:21:52 | 显示全部楼层 |阅读模式
普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false:

alert( 0 == false ); // true
也同样无法区分空字符串和 false:

alert( '' == false ); // true
这是因为在比较不同类型的值时,处于相等判断符号 == 两侧的值会先被转化为数字。空字符串和 false 也是如此,转化后它们都为数字 0。

如果我们需要区分 0 和 false,该怎么办?

严格相等运算符 === 在进行比较时不会做任何的类型转换。

换句话说,如果 a 和 b 属于不同的数据类型,那么 a === b 不会做任何的类型转换而立刻返回 false。

让我们试试:

alert( 0 === false ); // false,因为被比较值的数据类型不同
同样的,与“不相等”符号 != 类似,“严格不相等”表示为 !==。

严格相等的运算符虽然写起来稍微长一些,但是它能够很清楚地显示代码意图,降低你犯错的可能性。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表