SyntaxError: "use strict" not allowed in function with non-simple parameters - JavaScript 编辑
信息
Firefox: 句法错误: "use strict" 不允许在带默认参数的函数中 句法错误: "use strict" 不允许在带rest参数的函数中 句法错误: "use strict" 不允许在带解构参数的函数中 Chrome: 句法错误: 非法的'use strict'指令,在带有非简单参数列表的函数中
错误类型
哪里出错了?
在函数顶部直接写了 "use strict"
,而该函数拥有以下的参数其中之一:
根据ECMAScript规范,不允许在这些函数的顶部使用“use strict”指令。
示例
函数语句
在这种情况下,函数sum具有默认参数a = 1和b = 2:
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" 指令到函数之外:
"use strict";
function sum(a=1, b=2) {
return a + b;
}
函数表达式
函数表达式可以使用另一种解决方法:
var sum = function sum([a, b]) {
// SyntaxError: "use strict" not allowed in function with destructuring parameter
"use strict";
return a + b;
};
这可以转换为以下表达式:
var sum = (function() {
"use strict";
return function sum([a, b]) {
return a + b;
};
})();
箭头函数
如果箭头函数需要访问 this
,则可以将箭头函数作为封闭函数来使用:
var callback = (...args) => {
// SyntaxError: "use strict" not allowed in function with rest parameter
"use strict";
return this.run(args);
};
这可以转换为以下表达式:
var callback = (() => {
"use strict";
return (...args) => {
return this.run(args);
};
})();
也可以看看
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论