我刚刚注意到我可以在 javascript 中执行以下操作...
a:b:c:d = "happy days";
a:b:c = function(text){alert(text);};
然而我却做不到...
var a:b:c:d = "happy days";
// or
var myObj = {prop:a:b:c:d};
我没想到这种语法在任何情况下都能工作。有谁知道当我成功使用“a:b=x”符号时发生了什么?
ECMAscript 中的冒号有三个原因
- 将对象键与其值分开
- 内联条件语句
- labeling
你发现了后者。您基本上要做的是创建一个名为的标签a
, then b
, then c
最后你给一个全局变量赋值d
。所以之后
a:b:c:d = "happy days";
console.log(a); // reference error
console.log(d); // "happy days";
最常见的用法是在switch
声明我们这样做的地方
switch( foo ) {
case 0: break;
case 1: break;
// etc
}
但您也可以直接“定位”标签continue
陈述。这非常接近goto
在许多其他语言中,看起来像
foobar:
for(var i = 0; i < 10; i++) {
for(var j = 0; j < 10; j++) {
if( j === 2 )
continue foobar;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)