Spec-Zone.ru › JavaScript

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)

Тип ошибки

SyntaxError

Что пошло не так?

В строгом режиме имена 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);
}

Смотрите также

  • Строгий режим
  • arguments
  • eval()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API