JS严格模式(精简分析,快速掌握)

80 阅读1分钟

js的严格模式会使得代码在严格的模式下运行,严格模式是通过 "use strict"; 开启。严格模式可以在js文件中开启严格模式,也可以对某一个函数开启严格模式。

严格模式有着如下好处:

  • 严格模式下,静默错误会报错

    • 比如不使用关键字声明变量就是一个静默错误message = "hello"
  • js引擎在执行代码时可以进行更多的优化

严格模式限制(重点):

  • 标识符不能用“保留字”命名

  • 声明变量必须要有关键字 message = "message";

  • 不允许使用0开头作为八进制,要写成“0o开头”(0x十六进制,0o八进制,0b二进制)

  • 严格模式下“函数独立调用”函数中的this指向undefined,不会默认绑定为window

  • setTimeout传入的函数是通过apply调用this绑定为了window,在严格模式下,普通函数的this依然指向window(箭头去上层查找)

  • 静默错误:

    • true.foo = "123";
    • NaN = 123;
    • var obj={}; Object.defineProperty(obj, "name", {writable:false, value="w"}); obj.name="1";
  • 不允许函数有相同的参数名 fn(x,x);

  • with()不允许使用

  • eval()传入字符串作为js解析如果创建了变量,不能被使用的