Параметр arguments функции JavaScript
У функций есть неявный параметр arguments который содержит все аргументы передаваемые функции, даже если для них не определены параметры.
Параметр arguments
Поддерживает свойство length (покажет количество аргументов) и возможность обращаться к
содержимым аргументам по индексу (arguments[0] - первый аргумент).
function arg(){
console.log(arguments.length, arguments[0], arguments[1])
}
arg('первый аргумент', 'второй аргумент')
//2 "первый аргумент" "второй аргумент"
Изменение любого из этих параметров приведет к изменению значения соостветствующего ему параметра.
function nus(gg){
//if(typeof arguments ==='object'){console.log('true')}//true
console.log(gg, arguments[0])//bye bye
//присвоение значение параметру gg
//изменит значение соответствующего ему параметра arguments[0]
gg='next'
console.log(arguments[0]) //next
//изменение значения параметра arguments[0] изменит значение соответствующего ему параметра gg
arguments[0]='end'
console.log(gg)//end
}
nus('bye')
Строгий режим 'use strict' запрещает взаимосвязанное изменение параметров.
function us(gg){
'use strict'
console.log(gg, arguments[0])//srict srict
gg='next'
console.log(arguments[0])//srict
arguments[0]='end'
console.log(gg)//srict
console.log(gg, arguments[0])//next end
}
us('srict')