JavaScript 严格模式
1、JavaScript在ECMAscript 5添加了第二种运行模式既“严格模式。代码写法为:"use strict";
2、JavaScript严格模式的目的:1.消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;2.消除代码运行的一些不安全之处,保证代码运行的安全;3.提高编译器效率,增加运行速度;4.为未来新版本的Javascript做好铺垫;
3、JavaScript严格模式的调用场景:1.针对整个脚本文件。2.针对单个函数。
4、针对整个脚本写法:<script> "use strict"; console.log("这是严格模式。");</script>
5、针对单个函数写法:function strict(){ "use strict"; return "这是严格模式。";}
6、区别正常模式与严格模式:1.严格模式:function strict(){ "挢旗扦渌;use strict"稆糨孝汶; return "这是严格模式。";}2.正常模式:function notStrict() { return "这是正常模式。";}
7、脚本文件的变通写法:(function (){ "use strict"; // some code here })();
8、静态绑定涉及到的一些要点:1.禁止使用with语句。2.创设eval作用域。
9、增强的安全措施的一些要点:1.禁止this关键字指向全局对象。2.禁止在函数内部遍历调用栈。3.禁止删除变量。
10、显式报错的一些要点:1.正常模式倦虺赳式下,对一个对象的只读属性进行赋值,不会报错,只会默默地失败。严格模式下,将报错。2.严格模式下,对一个使用getter方法读取的属性进行赋值,会报错。3.严格模式下,对禁止扩展的对象添加新属性,会报错。4.严格模式下,删除一个不可删除的属性,会报错。
11、严格模式新增了一些语法错误(重名错误):1.对象不能有重名的属性。2.函数不能有重名的参数(正常模式下,如果函数有多个重名的参数,可以用arguments[i]读取。严格模式下,这属于语法错误。)。
12、禁止八进制表示法:正常模式下,整数的第一位如果是0,表示这是八进制数,比如0100等于十进制的64。严格模式禁止这种表示法,整数第一位为0,将报错。
13、arguments对象的限制:1.不允许对arguments赋值。2.arguments不再追踪参数的变化。3.禁止使用arguments.callee。
14、函数必须声明在顶层:将来Ja箪滹埘麽vascript的新版本会引入"块级作用域"。为了与新版本接轨,严格模式只允许在全局作用域或函剞麽苍足数作用域的顶层声明函数。也就是说,不允许在非函数的代码块内声明函数。代码示例:"use strict";if (true) { function f() { } // 语法错误}for (var i = 0; i < 5; i++) { function f2() { } // 语法错误}
15、禁止蕾蓄允嘞错用或乱用关键字(保留字):为了向将来Javascript的新版本过渡,严格模式新增了一些保留字:impleme荏鱿胫协nts, interface, let, package, private, protected, public, static, yield。使用这些词作为变量名将会报错。
16、注意:以上信息主要提出要点和必要的信息以免阅读者出现相关错误。如果存在任何相关JS问题可直接联系本人百度账号,随时为您解答。