浅谈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做好铺垫。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值