为什么foo:{bar:10}在chrome console中执行时打印10使用Javascript

时间:2016-11-10 14:06:07

标签: javascript

在看到下面的代码后熟悉对象文字,我猜到最后一行将是" 2 + 2 + 2 = 6"但是当在chrome控制台中执行时,我得到了" Nan"结果。最初我没有认识到":"在第4行的foo和第5行和第6行的bar旁边的半冒号之后。为了找出原因,我试过了" foo:{bar:10}"然后它打印10.然后我开始知道语法错误但无法理解为什么它没有抛出错误而是得到了答案10.



var bar = 1,
    foo = {};

foo: {
    bar: 2;
    baz: ++bar;
};
foo.baz + foo.bar + bar;




1 个答案:

答案 0 :(得分:4)

foo:label。它什么都不做,因为它没有标出任何有用的东西。

{}block。它将一些陈述组合在一起,但(在这个例子中)并不是很重要。 (重要:它是,而不是对象文字。)

bar:是另一个标签。同上foo:

10是一个数字。

由于其他所有内容都不重要,因此您基本上在评估10,因此您会得到10