在 IE 和 Chrome 中,在 JavaScript 控制台中输入以下内容会引发异常:
{} == false // "SyntaxError: Unexpected token =="
但是,所有这些语句的评估都没有问题:
false == {} // false
({} == false) // false
var a = {};
a == false // false
这是故意行为吗?为什么会出现这种情况?
最佳答案
在控制台中,当您使用 {}
启动语句时,您并不是在创建对象文字,而是创建代码块(即与使用 if 创建的 block 相同)
语句或循环体)。之后显然不会出现像 ==
这样的符号。
如果您想到代码块,您就会知道类似 a = 5;
的内容可能会出现在它后面:
if (some_condition) {
// do something
}
a = 5;
然后您可以使用它在控制台中进行测试,并发现它工作得很好:
{} a = 5;
关于javascript - 为什么 {} == false 会抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796596/