24

在 IE 和 Chrome 中,在 JavaScript 控制台中输入此代码会引发异常:

{} == false   // "SyntaxError: Unexpected token =="

但是,所有这些语句的评估都没有问题:

false == {}   // false

({} == false) // false

var a = {};
a == false    // false

这是故意行为吗?为什么会这样?

4

1 回答 1

25

在控制台中,当您使用 开始语句时{},您创建的不是对象文字,而是代码块(即与使用if语句或循环体创建的块相同)。==之后显然不会出现类似的符号。

如果你想到一个代码块,你就会知道它a = 5;后面可能会出现类似的东西:

if (some_condition) {
    // do something
}
a = 5;

然后您可以使用它在控制台中进行测试,并发现它工作得很好:

{} a = 5;
于 2014-05-22T01:57:02.643 回答