对象字面量之外的键值对如何仍然产生值?
How does a key-value pair outside of an object literal still produce a value?
尝试输入
donald: 'duck'
甚至
{donald: 'duck'} // hint: this is considered a scope block instead of an object literal by the console
在控制台上(我测试了节点、chrome 和 IE)。
我个人得到 "duck" 作为输出...有人能解释一下为什么吗?
在对象文字之外,[identifier]:
语法定义了一个 label。基本上,标签命名程序的特定点。它们是 JavaScript 的罕见功能,但可以在嵌套 for 循环中使用 break
或 continue
时使用:
outer_loop:
for(var i = 0; i < 10; i++) {
inner_loop:
for(var j = 0; j < 10; j++) {
// will break inner_loop as normal
break;
// will break outer_loop instead
break outer_loop;
}
}
但是,如果您只是为某些语句声明一个标签,但从不使用它,那么它实际上就像从未存在过一样有效。因此声明
donald: 'duck'
将与
相同
'duck'
因为从未使用过标签功能。
尝试输入
donald: 'duck'
甚至
{donald: 'duck'} // hint: this is considered a scope block instead of an object literal by the console
在控制台上(我测试了节点、chrome 和 IE)。
我个人得到 "duck" 作为输出...有人能解释一下为什么吗?
在对象文字之外,[identifier]:
语法定义了一个 label。基本上,标签命名程序的特定点。它们是 JavaScript 的罕见功能,但可以在嵌套 for 循环中使用 break
或 continue
时使用:
outer_loop:
for(var i = 0; i < 10; i++) {
inner_loop:
for(var j = 0; j < 10; j++) {
// will break inner_loop as normal
break;
// will break outer_loop instead
break outer_loop;
}
}
但是,如果您只是为某些语句声明一个标签,但从不使用它,那么它实际上就像从未存在过一样有效。因此声明
donald: 'duck'
将与
相同'duck'
因为从未使用过标签功能。