在IE和Chrome中,在JavaScript控制台中输入此内容会引发异常:
{} == false // "SyntaxError: Unexpected token =="
但是,所有这些语句都没有问题进行评估:
false == {} // false
({} == false) // false
var a = {};
a == false // false
这是故意的行为吗?为什么会这样?
答案 0 :(得分:25)
在控制台中,当您使用{}
启动语句时,您不是创建对象文字,而是创建代码块(即使用if
语句创建的相同块或循环体)。之后显然不会出现像==
这样的符号。
如果你想到一个代码块,你知道像a = 5;
这样的东西可能会出现在它之后:
if (some_condition) {
// do something
}
a = 5;
然后,您可以使用它在控制台中进行测试,并发现它可以正常工作:
{} a = 5;