编程语言
首页 > 编程语言> > javascript-`2 == {}`和`{} == 2`有什么区别

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