JS-严格模式篇
2020-07-15 05:07
78 查看
1. 严格模式概述
- 严格模式对javaScript语义做了一些更改
- 消除了javaScript语法的一些不合理,不严谨之处,减少一些怪异行为
- 消除代码运行的一些不安全之处
- 提高编译效率,增加运行速度
- 禁用了在ECMAScript的未来版本中可能会定义的一些语法,为未来新版本的javaScript做好铺垫。
比如一些保留字:class,enum,export,extends, import,super不能做变量名
2. 开启严格模式(IE10以前会忽视)
- 严格模式可以应用到脚本或个别函数中。
- 为脚本开启严格模式:需要在所有语句之前(js的第一行)放一个特定句"use strict";如果整个脚本的语句都写在一个自调用函数里面,自调用函数里面的第一行写上"use strict";
- 为某个函数开启严格模式:在函数里面的第一行写上"use strict";
3. 严格模式下变量规定
- 在正常模式中一个变量没有声明直接赋值,默认为全局变量。严格模式禁止这种用法,
变量必须先声明,然后再使用。 - 严禁删除已经声明的变量。例如:delete 变量;语法是错误的
4. 严格模式下的this指向
- 以前在全局作用域函数中的this指向window对象。严格模式下全局作用域函数中的this是undefined;
- 以前构造函数不加new也可以调用,当普通函数,this指向全局对象。严格模式下,如果构造函数不加new调用,this会报错。加new调用this还是指向实例对象;
- 定时器中的this还是window,没有变化;
- 事件、对象还是指向调用者。
5. 严格模式下的函数变化
- 函数中不能有重名的参数
- 函数必须声明在最顶层(外面),新版本的javaScript会引入"块级作用域"(ES6已引入)。
- 为了与新版本接轨,不允许在非函数的代码内声明函数(如:if、for)。
相关文章推荐
- JS的解析顺序和作用域(严格模式)
- js严格模式
- js的严格模式
- 原生JS:严格模式详解
- js严格模式,数据驱动编程思想
- js的严格模式总结
- JS的解析顺序和作用域(严格模式)
- js严格模式——arguments变为参数的静态副本
- 浅谈js的解析顺序 作用域 严格模式
- 3.1.4 js的严格模式
- use strict (js中的严格模式)
- JS的解析顺序和作用域(严格模式)
- JS的解析顺序和作用域(严格模式)
- js中的 "use strict" 做了什么?使用严格模式有什么优点
- JS的解析顺序和作用域(严格模式)
- JS高级 03-04语法-严格模式
- js严格模式
- JS严格模式的限制
- -_-#【Better JS Code】严格模式
- js(javascript)中的严格模式解析