Является ли простой оператор `continue` приемлемой альтернативой вложению всего тела цикла for..in в`if`?
Как правило, решение для for..in
пресловутая оговорка является чем-то вроде:
for(var prop in obj) {
if(obj.hasOwnProperty(prop)) {
foo(); bar(); baz();
}
}
Я чувствую, что было бы чище просто сделать:
for(var prop in obj) {
if(!obj.hasOwnProperty(prop)) continue;
}
Вопрос в том... Не являются ли они функционально идентичными?
2 ответа
Они функционально идентичны. Период.
Что касается стиля, Дуглас и его JSLint говорят: не используйте continue
:
Избегайте использования оператора continue. Это имеет тенденцию затенять поток управления функции.
Смотрите http://javascript.crockford.com/code.html и ищите "продолжить"
Да, они функционально идентичны.
Я бы сказал, что пример без продолжения немного более семантический.
В первом примере вы не отрицаете bool в своем, если, таким образом, у вас есть типичныйif(property){"Execute the rest of this loop"}
вместоif(not property){"Do not execute the rest of this loop"
}