Pau*_*enn 7 javascript equals-operator browser-console
如果我打开浏览器控制台(在Chrome/Firefox中测试)并输入:
null == {}
Run Code Online (Sandbox Code Playgroud)
我明白了:
假
但是,如果我将两个参数都传递给==运算符,而是键入:
{} == null
Run Code Online (Sandbox Code Playgroud)
我明白了:
未捕获的SyntaxError:意外的令牌==
图片:
编辑:
而问题35812626个地址本,并解释为JS解析原因{}作为代码块,它使用三重等于(严格比较)运算符===,而不是双等于==.正如用户在下面指出的那样,绝对可以遵循代码块==而不会导致语法错误:
{} == {} // false
Run Code Online (Sandbox Code Playgroud)
怎么会这样,我的例子没有?
我认为这是因为解释器解释{}为代码块而不是对象。
所以你的代码结果{} == null是一个块开始和结束,然后一个语句开始==,这绝对是一个语法错误。
但如果你能尝试的话,({} == null)我认为它应该运行得很好。
正如 @dhaker 所指出的,{}=={}返回的false不是错误。
我发现很少有场景返回结果并且很少出现错误。
以下出现错误:
{}==null //Uncaught SyntaxError: Unexpected token ==
{}==1 //Uncaught SyntaxError: Unexpected token ==
{}==0 //Uncaught SyntaxError: Unexpected token ==
{}==true //Uncaught SyntaxError: Unexpected token ==
{}==false //Uncaught SyntaxError: Unexpected token ==
{}==true //Uncaught SyntaxError: Unexpected token ==
{}=='' //Uncaught SyntaxError: Unexpected token ==
{}=='hi' //Uncaught SyntaxError: Unexpected token ==
{}==(new Object) //Uncaught SyntaxError: Unexpected token ==
Run Code Online (Sandbox Code Playgroud)
以下是没有错误的返回结果:
{}=={} //false
{}==function(){} //false
Run Code Online (Sandbox Code Playgroud)
所以我想这与浏览器如何编译或解释 Javascript 有关。
如需更详细的答案,请查看以下答案。
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |