Es5 严格模式
http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html
除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode)。
- 顾名思义,这种模式使得Javascript在更严格的语法条件下运行
2. 目的/作用
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
- 消除代码运行的一些不安全之处,保证代码运行的安全
- 为未来新版本的Javascript做好铺垫
3. 使用
- 在全局或函数的第一条语句定义为: 'use strict';
- 如果浏览器不支持, 只解析为一条简单的语句, 没有任何副作用
4. 语法和行为改变
- 必须用var声明变量
- 创建eval作用域
- 禁止this指向window
- 对象不能有重名的属性
- 函数不能有重名的形参
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script type="text/javascript"> 'use strict' var username="kobe"; console.log(username); function person(name,age){ this.name =name; this.age=age; } //去掉new会报错,use stritc 禁止自定义this指向windo, //加上new this指向自身的实例 new Person('kobe',36) new Person('kobe',39) var str='nama' // 严格模式eval里面有自己 的作用域 eval('var str="val" alert(str)') </script> </body> </html>