浅谈JavaScript严格模式

除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更合理、更安全、更严谨的条件下运行。


进入严格模式的标识为 "use strict"。


① 严格模式有两种调用方法:

1) 将"use strict"放在脚本文件的第一行,指定整个脚本都以严格模式运行。

2) 将"use strict"放在函数体的第一行,指定函数以严格模式运行。


② 严格模式与正常模式的不同:

1) 正常模式中如果一个变量未经声明就赋值,会被认为是全局变量,而严格模式中,全局变量必须显式声明。

2) 正常模式只有全局作用域和函数作用域,而严格模式下增加了eval()作用域,严格模式下eval语句本身就是一个作用域,它所生成的变量只能用于eval内部。

3) 严格模式禁止使用with语句,因为with语句无法在编译时就确定属性属于哪个对象。

4) 严格模式禁止使用arguments.callee,意味着无法再匿名函数内部调用自身。

5) 严格模式限制arguments对象:不允许对arguments赋值,且arguments不再追踪参数的变化。

6) 严格模式禁止this关键字指向全局对象。

7) 严格模式下删除无法删除的属性(configurable属性为false的属性)会报错。

8) 严格模式下对只读属性(只指定了getter方法的属性)赋值会报错。

9) 严格模式对象不能有重名属性,正常模式取最后一个值。

10) 严格模式函数不能有重名参数,正常模式可以通过arguments[i]读取。

11) 严格模式禁止八进制表示法,整数第一位为0将会报错。

12) 严格模式函数必须声明在顶层。


③ 为什么用严格模式:

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

2) 消除代码运行的一些不安全之处,保证代码运行的安全。

3) 提高编译器效率,增加运行速度。

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值