Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. JavaScript ссылки на ошибки
  5. SyntaxError: "use strict" not allowed in function with non-simple parameters

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

SyntaxError: "use strict" not allowed in function with non-simple parameters

Сообщение

Edge:Cannot apply strict mode on functions with non-simple parameter listFirefox:SyntaxError: "use strict" not allowed in function with default parameterSyntaxError: "use strict" not allowed in function with rest parameterSyntaxError: "use strict" not allowed in function with destructuring parameterChrome:SyntaxError: Illegal 'use strict' directive in function with non-simple parameter list

Перевод:

Edge:Не удаётся применить строгий режим к функциям со списком, содержащим сложные параметрыFirefox:Ошибка синтаксиса: "use strict" не допускается в функции с параметром по умолчаниюОшибка синтаксиса: "use strict" не допускается в функции с rest параметромОшибка синтаксиса: "use strict" не допускается в функции с параметром, использующим деструктуризациюChrome:Ошибка синтаксиса: недопустимая директива 'use strict' в функции со списком, содержащим сложные параметры

Тип ошибки

SyntaxError.

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

Директива"use strict" была использована в верхней части функции, которая имеет один из следующих параметров:

Директива "use strict" не допускается в верхней части таких функций согласно спецификации ECMAScript.

Примеры

Функция заявления

В этом случае функция sum имеет параметры по умолчанию a=1 и b=2:

js
function sum(a = 1, b = 2) {  //SyntaxError: использовать "use strict" не разрешено в функции с параметром по умолчанию  'use strict';  return a + b;}

Если функция должна находиться в строгом режиме, и весь скрипт или заключающая функция также в порядке, чтобы быть в строгом режиме, вы можете переместить директиву "use strict" за пределы функции:

js
"use strict";function sum(a = 1, b = 2) {  return a + b;}

Функция выражения

Выражение функции может использовать ещё один обходной путь:

js
var sum = function sum([a, b]) {  // SyntaxError: "use strict" не допускается в функции с параметром деструктурирования  'use strict';  return a + b;};

Это может быть преобразовано в следующее выражение:

js
var sum = (function () {  "use strict";  return function sum([a, b]) {    return a + b;  };})();

Указательная функция

Если функция со стрелкой должна получить доступ к переменной this, можно использовать функцию со стрелкой в качестве функции включения:

js
var callback = (...args) => {  // SyntaxError: "use strict" не допускается в функции с параметром rest  'use strict';  return this.run(args);};

Это может быть преобразовано в следующее выражение:

js
var callback = (() => {  "use strict";  return (...args) => {    return this.run(args);  };})();

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

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp