- 理解:
- 除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode)。
- 顾名思义,这种模式使得Javascript在更严格的语法条件下运行
- 目的/作用
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
- 消除代码运行的一些不安全之处,为代码的安全运行保驾护航
- 为未来新版本的Javascript做好铺垫
- 使用
- 在全局或函数的第一条语句定义为: 'use strict';
- 如果浏览器不支持, 只解析为一条简单的语句, 没有任何副作用
- 语法和行为改变
- 必须用var声明变量,否则报错
- 禁止自定义的函数中的this指向window,否则报错
- 创建eval作用域
- 对象不能有重名的属性,否则报错
<script type="text/javascript">
'use strict';
var age = 12;
console.log(age);
function Person(name, age) {
this.name = name;
this.age = age;
}
new Person('kobe', 39);
setTimeout(function () {
console.log(this);//window
}, 1000);
//* 创建eval作用域
var name = 'kobe';
eval('var name = "anverson";alert(name)');//严格模式下 创建eval自己的作用域, 不会改变eval前面的name的值
console.log(name);//kobe 如果不是严格模式 将输出anverson
var obj = {
name : 'kobe',
name : 'weide'
};
console.log(obj);
</script>
网友评论