[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Errors/Strict_non_simple_params [Back]  [Original]

SyntaxError: "use strict" no permitida en funcin con parmetros complejos - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

SyntaxError: "use strict" no permitida en funcin con parmetros complejos

La excepcin de JavaScript: "'use strict' no permitida en funcin" ocurre cuando se usa una directiva "use strict" en la parte superior de una funcin con parmetros predeterminados, parmetros rest o Desestructuracin de parmetros.

In this article

Mensaje

Edge:

No se puede aplicar el modo estricto en funciones con una lista de parmetros complejos

Firefox:

SyntaxError: "use strict" no permitido en la funcin con parmetro predeterminado
SyntaxError: "use strict" no permitido en la funcin con parmetro rest
SyntaxError: "use strict" no permitido en la funcin con parmetro de desestructuracin

Chrome:

SyntaxError: directiva ilegal 'use strict' en funcin con una lista de parmetros complejos

Tipo Error

SyntaxError.

Qu sali mal?

Se escribi una directiva "use strict" en la parte superior de una funcin que tiene uno de los siguientes parmetros:

No est permitida una directiva "use strict" en la parte superior de dichas funciones segn la especificacin ECMAScript.

Ejemplos

Declaracin de funcin

En este caso, la funcin sum tiene los parmetros predeterminados a = 1 y b = 2:

js
function sum(a = 1, b = 2) {
  SyntaxError: 'use strict' no permitida en la funcin con parmetros predeterminados
  'use strict';
  return a + b;
}

Si la funcin debe estar en modo estricto, y todo el script o la funcin adjunta tambin est bien que est en modo estricto, puedes mover la directiva "use strict" fuera de la funcin:

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

Expresin Function

Una expresin function puede usar otra solucin alternativa:

js
var sum = function sum([a, b]) {
  // SyntaxError: "use strict" no permitido en funcin con parmetros de desestructuracin
  'use strict';
  return a + b;
};

Esta se puede convertir a la siguiente expresin:

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

Funcin de flecha

Si una funcin de flecha necesita acceder a la variable this, puedes usar la funcin de flecha como funcin circundante:

js
var callback = (...args) => {
  SyntaxError: "use strict" no permitido en la funcin con parmetro rest
  'use strict';
  return this.run(args);
};

Esta se puede convertir a la siguiente expresin:

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

Ve tambin


Web Proxy Viewer  |  New URL  |  Original Page