Ответы пользователя по тегу Фронтенд
  • Почему консоль выводит числа (Symbol.iterator)?

    Symbol.iterator устанавливает поведение при итерации объекта. В случае с for..of метод next вызывается неявно. Но его присутствие и вид возвращаемого объекта с полями value и done обязывает протокол итератора. В value содержится текущее значение, которое попадает в переменную n, а в done указан флаг окончания итерации.

    Тот же самый протокол используется, к примеру, в генераторах:
    function fibonacci(max) {
      return {
        [Symbol.iterator]: function* iterator() {
          let prev = 0
          let cur = 1
          while (true) {
            [prev, cur] = [cur, prev + cur]
    
            if (cur > max) {
              return cur
            }
    
            yield cur
          }
        }
      }
    }
    
    [...fibonacci(1500)] // Массив с числами Фибоначчи с ограничением «1500»
    
    // Но при этом...
    const iterable = fibonacci(1500)[Symbol.iterator]()
    iterable.next() // {value: 1, done: false}
    Ответ написан
    Комментировать
  • Babel vs Autopolyfiller. Может babel уже и не нужен?

    Я прошу прощения, а причем тут babel? Autopolyfiller создаёт полифиллы какого-то функционала, тем временем, babel — транспайлер кода. Никто не запрещает их использовать вместе. Какое-то сравнение тёплого с мягким.
    Ответ написан
    2 комментария