Использование for-in не является предпочтительным в JavaScript, а как насчет for-of?

1

Я строю, чтобы писать в лучшей практике. так как я знал, что "in-in" - плохая практика из-за этого плохого поведения, я прекратил его использовать. но как насчет использования for-of?? и какое слово мы должны использовать перед итератором (var, let, const) и почему?


    for (const iterator of cells) {
        iterator.addEventListener('click', function (event) {
        console.log(iterator);
        });
    }

  • 0
    1) for-in и for-of имеют различное использование. Первый предназначен для перебора перечисляемых ключей объекта. Последний предназначен для итерации по итератору / итерируемому объекту (массив, генератор, итераторы ключа массива и т. Д.)
Теги:

1 ответ

1

for-of - это, в частности, для прокрутки значений итерируемого объекта, такого как массив. Так что да, абсолютно, использование for-of на массиве - отличная практика.

и какое слово мы должны использовать перед итератором (var, let, const) и почему

Это вам. (Но это не "итератор". Это "переменный" или "привязывающий" или "свободно" идентификатор. Итератор - это объект, используемый под обложками for-of.) Я использую const если не планирую изменить значение привязки в цикле (и обычно это лучше не делать), поскольку оно является константой для каждой итерации цикла. let также является разумным выбором, и в обоих случаях любые замыкания, созданные в цикле, не будут преследовать проблему замыкания в цикле с этой привязкой. Но по той же причине, как let и const могут иметь импликацию производительности, если она объявлена в конструкции цикла, поскольку для каждой итерации цикла создается новое связывание. Если вы использовали var, у него была бы область функций и, следовательно, не была бы воссоздана для каждой итерации цикла. (Но я бы не использовал var, если у меня есть особенно чувствительный к производительности бит кода, где мне нужно избегать привязки к рекреации, я использую let выше цикла вместо этого.)


... с тех пор, как я знал, что "вне игры" - плохая практика из-за плохого поведения...

for-in не является "плохим поведением", если используется для его цели: Зацикливание через имена перечислимых свойств объекта. Это просто люди часто используют его для перебора индексов массива, для которых он не предназначен и не подходит для него. (Больше ответов на этот вопрос, в том числе и мой.)

  • 0
    Отлично. Это лучшее описание. «если используется по назначению: просматривая имена перечисляемых свойств объекта» .. Другие люди говорят .. Эй, новички никогда не используют это, это вредно: D спасибо, дорогой

Ещё вопросы

Сообщество Overcoder
Наверх
Меню