为什么
asdf:'qwer'
返回qwer
,但
var a = asdf: 'qwer';
返回SyntaxError: Unexpected token :
?
答案 0 :(得分:1)
Javascript中没有冒号操作符(ternary conditional operator ?:
除外)。
在您的第一个代码段中,asdf:
是label。在你的第二个中,这是一个语法错误,因为标签只在语句之前有效,而不是在表达式内。
答案 1 :(得分:0)
因为它可以用作标签。你可以标记例如一个循环,这样你就可以很容易地打破一个循环,但它必须是一个单独的命令:
MAIN:
while (a) {
while (b) {
break MAIN;
}
}
但显然你可以为任何东西添加标签,即使它没用。