jslint - Nodejs use strict - JavaScript中的 "使用严格 "有什么作用,背后的原因是什么?

Js disable strict mode / javascript / syntax / use-strict

最近,我通过Crockford的JSLint运行了一些JavaScript代码,并给出了以下错误:

Mark Rogers



Answer #1

声明 "use strict"; 指示浏览器使用严格模式,这是JavaScript的精简和安全功能集。

禁止使用全局变量。(捕获变量名称中缺少的 var 声明和拼写错误)

静默失败的分配将在严格模式下引发错误(分配 NaN = 5;

尝试删除不可删除的属性将引发( delete Object.prototype

要求对象文字中的所有属性名称必须唯一( var x = {x1: "1", x1: "2"}

函数参数名称必须唯一( function sum (x, x) {...}

禁止使用八进制语法( var x = 023; 有些开发人员错误地认为前面的零不会更改数字。)

禁止 with 关键字

eval 严格模式下的eval不会引入新变量

禁止以任何形式绑定或分配名称 evalarguments