Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/01/2021 in Posts

  1. Ни в каких. Обычно CSS в отдельном файле кэшируется. Например, дополнительный атрибут увеличивает размер передаваемых данных с сервера на клиент, а также усложняет все остальное. Представьте себе что в статье 20 списков и для каждого нужно сгенерировать тип. > почему его оставили валидным Очевидно, что обычная недоработка.
    1 point
  2. В примере с замыканием на самом деле все правильно работает, ошибка тут: // console.log(`fib[${i}] = ${fib[i]}`) console.log(`fib[${j}] = ${fib[j]}`) У var область видимости функции или глобальная, у let и const – область видимости окружающего блока. То есть пример можно переписать так, что будет равнозначно: const fib = [1, 2, 3, 5, 8, 13]; var i = 0; for(; i < fib.length; i++) { setTimeout(function() { console.log(`fib[${i}] = ${fib[i]}`) }, 1500) } Видно, что на каждой итерации увеличивается значение одной и той же внешней переменной. Но когда счетчик i++ доходит до 6 и условие (i < 6) не выполняется, цикл завершает свою работу, однако значение переменной i теперь уже 6, а не 5. Функция обратного вызова, переданная в setTimeout, ставится в очередь на выполнение. И эта очередь подойдет, только когда завершится выполнение основного потока. А к этому моменту i == 6. Дальше отложенные коллбэки начинают вызываться один за другим, и они берут это глобальное значение. Ну а элемента с индексом 6 в массиве нет, вот и undefined. С замыканием или let или const, понятно, что такой проблемы не будет.
    1 point
This leaderboard is set to Kiev/GMT+02:00
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy