如果我们alert(null==undefined)输出到true.
这是什么原因.
这是在javascript中硬编码的东西还是有解释.
Spu*_*ley 10
使用双重相等运算符会强制 Javascript 进行类型强制。
换句话说,当你这样做时x == y,如果x和y不是相同的类型,JavaScript 会在比较之前将一个值转换为另一个值,就像如果比较字符串和数字,字符串总是被转换为数字然后比较
出于这个原因,JavaScript 中混合类型的许多比较可能会导致可能出乎意料或违反直觉的结果。
如果您想在 JavaScript 中进行比较,通常使用三重等于运算符===而不是双重等于运算符更好。这不会进行类型强制;相反,如果类型不同,则返回 false。这通常是您需要的。
如果您绝对确定需要它,您应该只使用 double-equal 。
出于同样的原因0 == "0"-javascript的类型很松散-如果可以将某些内容转换为其他内容,除非您使用===
alert(null===undefined);
Run Code Online (Sandbox Code Playgroud)
会给你假的。
至于为什么会发生这些特定的转换-答案很简单,即“规范说这应该发生”。除了“因为它这么说”外,没有其他原因可以说明编程语言为何以某些方式运行。
| 归档时间: |
|
| 查看次数: |
6267 次 |
| 最近记录: |