您的位置:首页技术文章
文章详情页

JS严格模式原理与用法实例分析

【字号: 日期:2024-05-11 17:16:59浏览:20作者:猪猪

本文实例讲述了JS严格模式原理与用法。分享给大家供大家参考,具体如下:

使用 'use strict' 指令

'use strict' 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。

它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。

支持严格模式的浏览器:

Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。

严格模式声明

严格模式通过在脚本或函数的头部添加 'use strict'; 表达式来声明。

实例中我们可以在浏览器按下 F12 (或点击'工具>更多工具>开发者工具') 开启调试模式,查看报错信息。

为什么使用严格模式: 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为; 消除代码运行的一些不安全之处,保证代码运行的安全; 提高编译器效率,增加运行速度; 为未来新版本的Javascript做好铺垫。严格模式的限制

1、不允许使用未声明的变量;

2、不允许删除变量或对象;

3、不允许删除函数;

4、不允许变量重名;

5、不允许使用八进制;

6、不允许使用转义字符;

7、不允许对只读属性赋值;

8、不允许对一个使用getter方法读取的属性进行赋值;

9、不允许删除一个不允许删除的属性;

10、变量名不能使用’eval’字符串;

11、变量名不能使用’arguments’字符串;

12、不允许使用以下这种语句:

<script>'use strict';with (Math){x = cos(2)}; // 报错</script>

13、由于一些安全原因,在作用域 eval() 创建的变量不能被调用:

<script>'use strict';eval ('var x = 2');alert (x);// 报错</script>

14、禁止this关键字指向全局对象。

function f(){ return !this;} // 返回false,因为'this'指向全局对象,'!this'就是falsefunction f(){ 'use strict'; return !this;} // 返回true,因为严格模式下,this的值为undefined,所以'!this'为true。

感兴趣的朋友还可以使用本站在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行结果。

更多关于JavaScript相关内容还可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

标签: JavaScript
相关文章: