
Функции в JavaScript могут принимать произвольное количество аргументов. Но что будет выведено на экран?true или false?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
В JS, у всех функций есть доступ к внутреннему массиву arguments который хранит все аргументы, переданные в функцию.
Мы можем получить доступ к этим элементам по индексу. Поэтому логично было бы предположить, что обе функции regularFunction и arrowFunction вернут true.
Единственная проблема в том, что стрелочные функции — исключение из правила и у нет доступа к массиву arguments.
В строке 8 может произойти две разные ситуации. Скорее всего ты увидишь ошибку ReferenceError: arguments is not defined.
Но может быть и другой сценарий. Например, если запустить этот код в Node.js, то в arguments[2] скорее всего будет лежать что-то похожее на такой объект
Module {
id: '.',
path: '/workdir_path',
exports: {},
parent: null,
filename: '/workdir_path/scriptName.js',
loaded: false,
children: [],
paths: [
'/node_modules'
]
}
В этом случае ошибки не будет и в консоль выведется сообщение false, так как 3 не равняется объекту показанному выше.
ОТВЕТ: сообщения false или ReferenceError появятся в консоли после выполнения кода.