1
24
“如果要检查两个操作数是否具有相同的类型和值,请使用严格相等运算符(==)。如果只关心值且类型无关紧要,请使用常规相等运算符(==)。例如,如果一个操作数是数字5,另一个操作数是字符串”5,标准相等运算符将返回true,但由于它们不是同一类型,严格相等运算符将返回false http://www.webreference.com/js/column26/stricteq.html |
2
19
这取决于你想做什么。 !== 和===比较两个值 和 类型
上述情况将返回真值。如果这不是您想要的,您应该这样做:
这将返回错误。 |
3
4
从…起 Douglas Crockford's Code Conventions for the JavaScript Programming Language 更多信息请参见托蒂的答案,或阅读 Douglas Crockford's The Elements of JavaScript Style, part two: Idioms |
4
3
避免它们的基本原因是
一个简单的例子是 警报({toString:function(){return“1”}==1)
|
5
3
语义
编辑:
删除了有关比较“虚假”值的错误信息。我只想说
|
6
1
嗯,我认为你收到的“建议”可能是出于好意,但不是一个完整的评论。 JavaScript是动态类型化的,这意味着变量可以动态更改类型(字符串、数字、布尔值),而无需强制转换。如果您这样做,解析器不会抱怨
但是,这并不是说JavaScript完全不考虑类型。相等和不相等运算符(=和!=)比较计算值,并忽略类型。 严格等式和严格不等式运算符(==和!==)确实关心类型。因此,在确定返回值之前,他们将比较值和类型。 在这里阅读更多 http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.5/guide/expr.html#1010037 |
7
0
就个人而言,除了其他人所说的非常合理的理由之外,我只是想知道我所比较的正是我想要的。对我来说,以下两者之间的区别很重要,即使它们都评估为
|
Softly · 单选按钮未按预期取值 1 年前 |
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
assembler · Nextjs没有处理发布请求 1 年前 |
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
Toniq · javascript为php保存多维数组 1 年前 |