在阅读某个项目的代码时,我偶然发现了KEYVAL
:
KEYVAL:
for(key_name in arg_map) { // iterates over hash key|value pairs
// if this key_name belongs to this object, not proto
if(arg_map.hasOwnProperty(key_name)) {
// skip dependent keys during iteration
if(key_name.indexOf('_') === 0) { continue KEYVAL; }
// update independent key value
anchor_map_revise[key_name] = arg_map[key_name];
// update matching dependent key
key_name_dep = '_' + key_name;
if(arg_map[key_name_dep]) {
anchor_map_revise[key_name_dep] = arg_map[key_name_dep];
} else {
delete anchor_map_revise[key_name_dep];
delete anchor_map_revise['_s' + key_name_dep];
}
} // if end
} // for end
那是什么?这个的目的是什么?它是JS语法的一部分吗?
答案 0 :(得分:4)
这是一个标签。标签是一个标识符(此处为:KEYVAL
),后跟冒号(:
),位于语句之前(在本例中为for
)。
continue
或break
语句可以使用标签(在您的情况下为continue KEYVAL
)来指定要继续或中断的循环。在这种情况下,KEYVAL: for
是最里面的循环,因此标签实际上不是必需的;但如果您需要一次从多个级别中断,标签很有用。
有关MDN的更多信息,请参阅
编辑:for
,而不是while
。