严格模式

ECMScript 5引入严格模式(strict mode)。严格模式定义了一种不同的解析与执行模型,ES3中的不确定行为会得到处理,某些不安全的操作也会抛出错误。支持严格模式的浏览器:IE10+,Firefox 4+,Safari5.1+,Opera 12+和Chrome。

若整个脚本启用严格模型,则在顶部添加代码:

"use strict";

这是一个编译指示。

若函数在严格模式下执行,则在函数内部的上方添加:"use strict";

1. 给未经声明的变量(没用var声明)在严格模式下会抛出ReferenceError错误。

2.严格模式下,delete一个未声明未定义的变量会出错。(普通模式下不出错,但这么做无意义)。

3. 严格模式对函数有一些限制:不能把函数或参数命名为eval或arguments;不能出现两个命名参数同名的情况。

4.严格模式下不能通过给arguments赋值来传递给命名参数;且重写arguments的值会导致语法错误(代码不会执行)。

5.严格模式下,访问arguments.caller和arguments.callee都会导致错误。

6.严格模式下,未指定环境对象而调用函数,则this值不会转型为window。除非明确把函数添加到某个对象,或者调用apply()或call(),否则this值将是undefined。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容