javascript严格模式之use strict表达式的用法笔记

原创 PHP笔记  2017-04-06 18:35  阅读 1,593 views 次

javascript严格模式(strict mode)的意思是在严格的条件下运行js代码。严格模式是通过在脚本或函数的头部添加"use strict";来声明,"use strict";并不是一条语句,而是一个字面量表达式。"use strict";是在javascript 1.8.5 (ECMAScript5)中新增的字面量表达式,在低版本中会被忽略。

严格模式声明

格式:

"use strict";//严格模式javascript脚本

实例:

<script type="text/javascript">
"use strict";
var a=6;
document.write(a);
</script>

输出结果:6

思考:根据以上实例,细心的你会发现,加"use strict";表达式和不加"use strict";表达式结果完全一样,那它们有什么区别呢?我们为什么要使用严格模式呢?

严格模式的限制

使用严格模式可以限制一些不合理的javascript语法;限制一些不安全的代码运行;提高编译器效率,增加运行速度;为未来新版本的javascript做好铺垫。严格模式体现了javascript脚本的发展方向更合理、更安全、更严谨。

相同的代码,在严格模式下运行和在正常模式运行可能有不一样的结果。往往体现在“可以在正常模式下运行的javascript脚本而不能在严格模式运行”。

示例1:不能使用未声明的变量

<script type="text/javascript">
"use strict";
a=1; //报错:a is not defined
str="use strict"; ///报错:str is not defined
</script>

示例2:函数参数不能重名

<script type="text/javascript">
"use strict";
function fun(a,a){};/*报错:Duplicate parameter name not allowed in this context*/
</script>

示例3:不允许删除变量或对象(包括函数)。

<script type="text/javascript">
"use strict";
var a =1;
var obj={};
var arr=[];
delete a; /*报错:Delete of an unqualified identifier in strict mode.*/
delete obj;/*报错:Delete of an unqualified identifier in strict mode.*/
delete arr;/*报错:Delete of an unqualified identifier in strict mode.*/
</script>

示例4:不能使用八进制

<script type="text/javascript">
"use strict";
var a = 010; /*八进制报错:Octal literals are not allowed in strict mode.*/
</script>

实例5:......

如果在实战中你使用严格模式,你会发现更多,在这就不一一例举了。

严格模式新增保留关键字

Implements、interface、let、package、private、protected、public、static、yield。

本文地址:https://www.ggbiji.com/js-strict.html
版权声明:本文为 PHP笔记 原创/整理文章,欢迎分享,转载请注明出处!

发表评论


表情