JavaScript严格模式详解与应用实例.pdfVIP

  • 1
  • 0
  • 约2.96千字
  • 约 5页
  • 2026-02-12 发布于北京
  • 举报

JavaScript严格模式(usestrict)

JavaScript严格模式(strictmode)即在严格的条件下运行。

使用usestrict指令

usestrict指令在JavaScript1.8.5(ECMAScript5)中新增。

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

usestrict的目的是指定代码在严格条件下执行。

严格模式下你不能使用未的变量。

支持严格模式的浏览器:

InternetExplorer10+、Firefox4+Chrome13+、Safari5.1+、Opera12+。

严格模式

严格模式通过在或函数的头部添加usestrict;表达式来。

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

Gif图演示如下:

实例

usestrict;

x=3.14;//报错(x未定义)

实例

usestrict;

myFunction();

functionmyFunction(){

y=3.14;//报错(y未定义)

}

在函数是局部作用域(只在函数内使用严格模式):

实例

x=3.14;//不报错

myFunction();

functionmyFunction(){

usestrict;

y=3.14;//报错(y未定义)

}

为什么使用严格模式:

消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

•消除代码运行的一些不安全之处,保证代码运行的安全;

•提高编译器效率,增加运行速度;

•为未来新版本的Javascript做好铺垫。

严格模式体现了Javascript更合理、更安全、更严谨的发展方向,包括IE10在内的主流浏览器,都已经支持它,许多大项目

已经开始全面拥抱它。

另一方面,同样的代码,在严格模式中,可能会有不一样的运行结果;一些在正常模式下可以运行的语句,在严格模式下

将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。

严格模式的限制

不允许使用未的变量:

usestrict;

x=3.14;//报错(x未定义)

对象也是一个变量。

usestrict;

x={p1:10,p2:20};//报错(x未定义)

不允许删除变量或对象。

usestrict;

varx=3.14;

deletex;//报错

不允许删除函数。

usestrict;

functionx(p1,p2){};

deletex;//报错

不允许变量重名:

usestrict;

functionx(p1,p1){};//报错

不允许使用八进制:

usestrict;

varx=010;//报错

不允许使用转义字符:

usestrict;

varx=\010;//报错

不允许对只读属性赋值:

usestrict;

varobj={};

Object.defineProperty(obj,x,{value:0,writable:false});

obj.x=3.14;//报错

不允许对一个使用getter方法的属性进行赋值

usestrict;

varobj={getx(){return0}};

obj.x=3.14;//报错

不允许删除一个不允许删除的属性:

usestrict;

deleteObject.prototype;//报错

变量名不能使用eval字符串:

usestrict;

vareval=3.14;//报错

变量名不能使用arguments字符串:

usestrict;

vararguments=3.1

文档评论(0)

1亿VIP精品文档

相关文档