javascript-`2 == {}`和`{} == 2`有什么区别
作者:互联网
当我在Chrome开发人员工具上键入2 == {}时,它将返回false,但是当我键入{} == 2时,我将收到错误Uncaught SyntaxError:Unexpected token ==.到底是怎么了==做了什么?
解决方法:
{在语法上是模棱两可的.它用于表达式(对象文字语法,{foo:42,bar:“ hello”})和语句(block,{foo(); bar(); baz();})中.
如果{出现在语句的开头,则始终将其解析为块的开头.
从而
{} == 2
解析为
{
// empty block
}
== 2 // syntax error
另一方面,在2 == {}中,{出现在表达式的中间,并被视为对象.
这也是使{} == 2起作用的方式:只需确保{不是第一个令牌,您可以通过例如写({})== 2或({} == 2).
标签:equality,javascript 来源: https://codeday.me/bug/20191108/2009492.html