JavaScript语法支持严格模式:use strict(ECMAScript5 Strict Mode)

分类:Javascript| 发布:camnprbubuol| 查看: | 发表时间:2013/8/28

严格模式的好处

启用严格模式有以下好处:

  1. 捕获一些编程错误,并抛出异常。
  2. 阻止进行一些相对“不安全”的操作(例如访问全局变量),抛出异常。
  3. 禁用一些让人迷惑的特性。

启用严格模式,需要从下面两个方面来做限制(检查)

  1. 语法解析阶段:如果在语法检测时发现语法问题,则整个代码块失效,并导致一个语法异常。
  2. 阻止进行一些相对“不安全”的操作(例如访问全局变量),抛出异常。
  3. 代码执行阶段:如果在运行期出现了违反严格模式的代码,则抛出执行异常。

如果给JavaScript代码标志为“严格模式”,则其中运行的所有代码都必然是严格模式下的。
其一:如果在语法检测时发现语法问题,则整个代码块失效,并导致一个语法异常。
其二:如果在运行期出现了违反严格模式的代码,则抛出执行异常。

注:经过测试IE6,7,8,9均不支持严格模式。

JavaScript代码“严格模式”使用方法:
严格模式需要使用字符串序列:

"use strict"

在如下位置加入可以开启相应代码块中的严格模式:
1.必须在全局代码的开始处加入。
2.在eval代码开始处加入。
3.在函数声明代码开始处加入。
4.在new Function()所传入的body参数块开始加入。

例1:

var num =012;alert(num);

在非严格模式下,可以使用0(零)开头前缀声明8进制。显示10。

但是在严格模式下,会产生错误。

"use strict";
var num =012;
alert(num);

测试结果:
IE6,7,8,9均显示10。
FF报错:octal literals and octal escape sequences are deprecated
Chrome报错:Uncaught SyntaxError: Octal literals are not allowed in strict mode.
Opera报错:Syntax error at line 3 while loading: Invalid character var num = 012;

检查各浏览器支持use-strict情况

如果使用严格模式,除了0(零)开头前缀8进制以外还有:
1.在代码中不能使用一些扩展的保留字:
implements,interface,let,package,private,public,static,yield
2.with语句也不能使用。
3.不能声明或重写eval和arguments两个标识符。
4.不能用delete 删除显式声明的标识符,名称或具名函数。

来源:http://qianduan-notes.diandian.com/post/2012-06-02/40027620460

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/use-strict-ecmascript5-strict-mode.html

相关文章