严格模式是为JavaScript 定义了一种不同的解析与执行模型。在严格模式下,ECMAScript 3 中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。要在整个脚本中启用严格模式,可以在顶部添加如下代码:
"use strict";
作用:
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
- 消除代码运行的一些不安全之处,保证代码运行的安全
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
和普通模式的区别:
1、 没有声明就赋值的变量
普通模式:默认为全局变量
严格模式: 禁止
2、 this不可以指向全局变量
因此使用构造函数时忘了加new ,会报错
3、删除变量
扫描二维码关注公众号,回复:
12519570 查看本文章
必须设定configurable = true
4、报错
普通模式:对只读属性赋值,只会默默失败
严格模式:报错
5、重名属性
普通模式:后面的覆盖前面的
严格模式:报错
6、函数的重名参数
普通模式: 不报错,可以通过arguments的index获取。
严格模式:报错
7、整数格式
普通模式: 第一位为0,表示八进制。
严格模式:第一位不可以为0
8、arguments关键词
不可以用来作为变量/函数名
9、块级作用域不可以声明函数