When should you use === vs ==, !== vs !=, etc.. in javascript?
Possible Duplicate:
Javascript === vs == : Does it matter which “equal” operator I use?
===和==、!==和==……你应该什么时候用一个,什么时候用另一个?
- 这是大约1000个问题的重复
- 你能把其他问题的链接贴出来吗?我总是先看一看,很明显书名不够清楚,不容易找到。也许这个问题也能帮助人们找到正确的方向,以防他们没有找到确切的东西。
- 我的想法完全正确。这里有一个:stackoverflow.com/questions/359494/javascript-vs
- 我想问题是你找不到===。
- 谢谢,更有用!看起来马修·维尼斯的回答非常清楚,直截了当,但是如果你想更详细地了解这个问题,你应该在上面的链接中找到蜥蜴比尔的答案。
- 哦。。。是的,那是有道理的。我想知道是不是有人可以改变搜索来适应这个?
- 我更新了stackoverflow.com/questions/359494的标题,希望它能更容易找到。不能搜索==,但可以搜索"等于"。
===是标识运算符,用于测试该值和类型是否相等。
所以…
1 2 3 4 5 6
| "3" == 3 // true
"3" === 3 // false
1 == true // true
1 === true // false
"1" == true // true
"1" === true // false |
因此,当您关心值和类型是否相等时,请使用identity操作符==或!=
- 很好,很有说服力
- "1"=真。什么?我想我知道这些规则谢谢你强调
- @kisskop&ny如果你感到困惑,那是因为1和0是布尔运算符。==进行类型转换,因此'1'==1==true,'0'==0==false。===不进行类型转换。一般来说,最好使用==键,除非你希望你的var经常改型,这很奇怪(至少对我来说)。
javascript中的"普通"==操作符执行类型强制,并尽其所能在需要时将字符串视为数字或将对象视为字符串。较长的==运算符不会执行类型强制,而是在类型内进行严格的比较。
===和!==与==和!=相同,但还要检查变量类型。