严格模式是一种特殊的运行模式,他修复了部分语言上的不足,提供更强的错误检查,并增强安全性。

在js文件开头引入'use strict'使整个js代码都在严格模式下进行

1.with语句会抛错误
2.未声明的变量被赋值会报错         / /没有声明就赋值的变量,相当于是定义了一个全局变量,通过window.x可以访问
3.arguments在严格模式下变为静态,传入的参数与arguments无关系
4.delete会报错      // 普通模式下,在函数中删除参数,不会成功,但也不报错,会返回false。在严格模式中,删除参数或函数名会报语法错。
5.对象的重复属性名会报错      //普通模式下,重复命名,最后的赋值会覆盖前面的,不会报错。严格模式下,重复命名,会报语法错。
6.禁止八进制变量
7.eval被认定为关键字,另外eval的参数中若有定义变量的语句,在严格模式下只是一段平凡的字符串,使用typeof检测不到在eval里定义的变量类型   //严格模式下,eval,arguments为关键字

 普通模式下,eval内部定义的变量,在eval外部也可以访问。严格模式下,eval有独立作用域,在eval之外不能访问eval内部变量,类似于一个局部作用域

8.对configurable为false的属性删除时,普通模式删除失败,返回false,不报错;严格模式,会报typeerror。

相关文章:

  • 2021-10-06
  • 2021-09-18
  • 2021-12-23
  • 2021-12-29
  • 2022-01-14
  • 2022-01-15
  • 2021-12-02
猜你喜欢
  • 2022-01-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-03-31
相关资源
相似解决方案