很久没有复习基础了,所以导致做项目的时候被坑,咳咳,基础还是很重要的。
=== 是没有强制类型转换的,和其他大部分语言的 == 是一样的。而js中 == 是有类型转换的,这也是js饱受诟病的原因之一。 那么 == 的转换规则是什么呢?
比如说 "true" == true 就是错的, Boolean("false") == false 也是错的。
也就是说,对于 == 是有一定的类型转化的。
‘‘ == ‘0‘ // false 0 == ‘‘ // true 0 == ‘0‘ // true false == ‘false‘ // false false == ‘0‘ // true false == undefined // false false == null // false null == undefined // true ‘ \t\r\n ‘ == 0 // true
比如,这里的一个是string,一个是布尔值,就都会向数字进行转化,那么"true"转化为了 NaN, 而 true 转化为了0, 自然就是不相等了。 而Boolean("false")为true,所以也是不相等的。
我们从贺师俊的回答中也可以看到我们是不提倡使用 == 的。永远不要使用 ==。
时间: 2024-10-07 00:32:18