pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Errors/Strict_non_simple_params

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

View in English Always 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 list

Firefox:
SyntaxError: "use strict" not allowed in function with default parameter
SyntaxError: "use strict" not allowed in function with rest parameter
SyntaxError: "use strict" not allowed in function with destructuring parameter

Chrome:
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);
  };
})();

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

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy