За что отвечает переменная i, JavaScript?

у меня есть функция, принимающая произвольное количество аргументов и выводящая их в параграфы, пытаюсь разобраться в логике, для чего здесь ", i" во второй строчке кода ? (код из учебника)

function isField(){ 
    let l = arguments.length, i; 
    for (i = 0; i < l; i++)
    window.document.write('<p>',arguments[i],'</p>')
}
isField('super', 1, 2 , 3 ,'glass')


Ответы (1 шт):

Автор решения: Anton Shchyrov
  1. Вторая строчка кода

    let l = arguments.length, i;
    

    равносильна двум строчкам

    let l = arguments.length;
    let i;
    

    (за переменную с именем l нужно убивать) и служит для объявления переменной i

  2. а зачем его указывать во второй строчке кода? без этого указания код также работает

    работает потому, что ваш код работает в режиме совместимости и все необъявленные переменные автоматически объявляются в глобальной области видимости. Стоит ваш код перевести в строгий режим директивой 'use strict'; и код работать перестанет

    "use strict";
    
    function isField() {
      let l = arguments.length;
      for (i = 0; i < l; i++)
        window.document.write('<p>', arguments[i], '</p>')
    }
    isField('super', 1, 2, 3, 'glass')

  3. И последнее переменную цикла лучше объявлять в самом цикле

    for (let i = 0; i < l; i++)
    
→ Ссылка