SyntaxError: 'arguments'/'eval' не могут быть определены или присвоены в коде строгого режима
Исключение JavaScript, возникающее только в строгом режиме, "'arguments' can't be defined or assigned to in strict mode code" или "'eval' can't be defined or assigned to in strict mode code", возникает при попытке создать привязку с именем arguments или eval, или присвоить такое имя.
Сообщение
SyntaxError: Unexpected eval or arguments in strict mode (V8-based) SyntaxError: 'arguments' can't be defined or assigned to in strict mode code (Firefox) SyntaxError: Cannot modify 'arguments' in strict mode. (Safari) SyntaxError: Cannot destructure to a parameter name 'arguments' in strict mode. (Safari) SyntaxError: Cannot declare a variable named arguments in strict mode. (Safari) SyntaxError: Cannot declare a catch variable named 'arguments' in strict mode. (Safari) SyntaxError: 'arguments' is not a valid function name in strict mode. (Safari)
Тип ошибки
Что пошло не так?
В строгом режиме имена arguments и eval ведут себя как зарезервированные слова: вы не можете заставить их ссылаться на что-либо, кроме объекта arguments в функциях или глобальной функции eval.
Примеры
Некорректные случаи
"use strict";
const arguments = [1, 2, 3];
console.log(Math.max(...arguments));
function foo(...arguments) {
console.log(arguments);
}
Корректные случаи
"use strict";
const args = [1, 2, 3];
console.log(Math.max(...args));
function foo(...args) {
console.log(args);
}
Смотрите также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Bad_strict_arguments_eval