Нераспознанная нотация в 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 заявление.

Другие вопросы по тегам