严格模式
- es5的代码前面加上"use strict",就处于严格模式
- es5的严格模式是可选的
- es6代码就处于严格模式
设立严格模式的目的:
- 消除javascript语法的一些不合理、不严谨之处,减少一些怪异行为。
- 消除代码运行的一些不安全之处,保证代码运行的安全
- 提高编译效率,增加运行速度
严格模式的特点
- 使用变量前必须先定义,不允许遗漏声明
- 不允许使用8进制的数字。var num = 012; //正常模式。表示10;严格模式不能这么写
- 不能把函数定义再if语句中 --这条有问题,可以定义
- 不能给对象声明重名的属性
- 函数不能有重名的形参
- arguments不再跟踪形参的变化
- function中的this指向window