Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. JavaScript 错误参考
  5. SyntaxError: "use strict" not allowed in function with non-simple parameters

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

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

信息

Firefox:句法错误:"use strict" 不允许在带默认参数的函数中句法错误:"use strict" 不允许在带 rest 参数的函数中句法错误:"use strict" 不允许在带解构参数的函数中Chrome:句法错误:非法的'use strict'指令,在带有非简单参数列表的函数中

错误类型

SyntaxError.

哪里出错了?

在函数顶部直接写了"use strict" ,而该函数拥有以下的参数其中之一:

根据 ECMAScript 规范,不允许在这些函数的顶部使用“use strict”指令。

示例

函数语句

在这种情况下,函数 sum 具有默认参数 a = 1 和 b = 2:

js
function sum(a=1, b=2) {  // SyntaxError: "use strict" not allowed in function with default parameter  "use strict";  return a + b;}

如果这个函数应该处于strict mode,并且整个脚本或封装函数也可以在严格模式下,可以移动 "use strict" 指令到函数之外:

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

函数表达式

函数表达式可以使用另一种解决方法:

js
var sum = function sum([a, b]) {  // SyntaxError: "use strict" not allowed in function with destructuring parameter  "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" not allowed in function with rest parameter  "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