码迷,mamicode.com
首页 > Web开发 > 详细

JS严格模式

时间:2018-04-28 14:32:10      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:stat   名称   禁止访问   cte   解决方案   作用域   ati   构造函数   eva   

 

ES5引入的一种新的JS运行模式,在严格模式下可以改变JS历史上遗留的一些不合理的语法或运行行为(这些语法或行为不能在普通模式下直接改变,因为会造成之前的老代码出问题),JS严格模式是为了在JS中引入新特性又不致于破坏老代码而产生的解决方案。

使用字符串字面量 ‘use strict’使脚本、<script>标签或函数进入严格模式

在严格模式下:

  1. 全局变量必须先声明才能使用(包括赋值)
  2. 禁止使用with
  3. eval执行在eval作用域中(这个作用域是新增的),这样eval就不会影响全局作用域或函数作用域了
  4. this不会也不能指向全局作用域(window对象),这样构造函数不加new调用就会报错,从而不至于影响全局作用域
  5. 禁止访问arguments.caller(表示调用当前函数的函数)、arguments.callee(表示当前函数自已,如用于匿名函数递归调用),也不能通过函数名访问arguments,但对arguments的使它使用(如获取参数)是正常的!
  6. arguments不可被赋值,也不再追踪参数值的变化(arguments中的值不会变)
  7. 禁止使用delete删除变量
  8. 显式报错,而不是沉默忽略错误(如对只读属性赋值、对禁止扩展的对象添加属性、删除不能删除的属性、属性名重复、参数名重复)
  9. 不支持八进制,整数第1位是0将报错
  10. 函数不能在if{}、for{}{}内部声明(以后版本会引入块级作用域)
  11. 新增mplements, interface, let, package, private, protected, public, static, yield关键字,不能使用这些名称作为变量名,函数名、参数名等

具体可参考http://dwz.cn/A6tGP

JS严格模式

标签:stat   名称   禁止访问   cte   解决方案   作用域   ati   构造函数   eva   

原文地址:https://www.cnblogs.com/liubingboke/p/8900822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!