Нераспознанная нотация в JS
Я читал книгу, посвященную написанию одностраничных приложений на Javascript, и пробежал по коду:
//begin merge changes into anchor map
KEYVAL:
for(key_name in arg_map){
if(arg_map.hasOwnProperty(key_name)){
//skip dependent keys during iteration
if(key_name.indexOf('_') === 0){
continue KEYVAL;
}
//update independent key valie
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];
}
}
}
И проблема в том, что я не знаю, что делает "KEYVAL:". Может кто-нибудь объяснить и, возможно, дать мне ссылку на документацию для этой конкретной записи? Спасибо.
1 ответ
KEYVAL:
вот этикетка. Это где исполнение прыгает на continue KEYVAL;
заявление.
Смотрите MDN на продолжение:
Оператор continue может содержать необязательную метку, которая позволяет программе перейти к следующей итерации оператора цикла с меткой вместо текущего цикла. В этом случае оператор continue должен быть вложен в этот помеченный оператор.
Это в основном используется, когда вы хотите иметь дело с вложенными циклами, так как позволяет вам выбрать уровень цикла, к которому нужно перейти. В вашем коде это выглядит бесполезно, вы можете удалить метку и сохранить простой continue
заявление.