为什么{a:1}在控制台中评估为1

时间:2013-06-10 20:29:06

标签: javascript console syntax-error

我为什么Chrome和Firefox中的控制台会将当前评估为1

> {a:1}
1

我猜它会被评估为一个对象,就像你将它分配给一个变量:

> var a = {a:1}
undefined
> a
Object {a: 1}

使用引号会引发语法错误:

> {"a":1}
SyntaxError: Unexpected token :

1 个答案:

答案 0 :(得分:7)

尝试({a:1})

执行{a:1}并不是您认为的那样。它不是一个对象文字,它必须是一个表达式(例如,在赋值的右侧)。

相反,你拥有的是blocklabel,然后是1。

{
    a:
    1
}

Blocks返回其评估结果,标签返回评估标签后面的语句的结果,因此返回1