ES6参考---es5-严格模式

一、总结

一句话总结:

a、除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode),这种模式使得Javascript在更严格的语法条件下运行
b、使用就是script前面加句话'use strict';

 

1、严格模式 的作用?

*、消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
*、消除代码运行的一些不安全之处,为代码的安全运行保驾护航
*、为未来新版本的Javascript做好铺垫

 

2、严格模式 如何使用?

1、在全局或函数的第一条语句定义为: 'use strict';
2、如果浏览器不支持, 只解析为一条简单的语句, 没有任何副作用

 

 

3、严格模式 对js语法和行为的 具体改变?

*、必须用var声明变量
*、禁止自定义的函数中的this指向window
*、创建eval作用域
*、对象不能有重名的属性

 

 

 

二、es5-严格模式



1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>01_严格模式</title>
6 </head>
7 <body>
8 <!--
9 1. 理解:
10 * 除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode)。
11 * 顾名思义,这种模式使得Javascript在更严格的语法条件下运行
12 2. 目的/作用
13 * 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为
14 * 消除代码运行的一些不安全之处,为代码的安全运行保驾护航
15 * 为未来新版本的Javascript做好铺垫
16 3. 使用
17 * 在全局或函数的第一条语句定义为: 'use strict';
18 * 如果浏览器不支持, 只解析为一条简单的语句, 没有任何副作用
19 4. 语法和行为改变
20 * 必须用var声明变量
21 * 禁止自定义的函数中的this指向window
22 * 创建eval作用域
23 * 对象不能有重名的属性
24 -->
25
26 <script type="text/javascript">
27 'use strict';
28 var age = 12;
29 console.log(age);
30 function Person(name, age) {
31 this.name = name;
32 this.age = age;
33 }
34 new Person('kobe', 39);
35 setTimeout(function () {
36 console.log(this);//window
37 }, 1000);
38
39 //* 创建eval作用域
40 var name = 'kobe';
41 eval('var name = "anverson";alert(name)');
42 console.log(name);
43
44 var obj = {
45 name : 'kobe',
46 name : 'weide'
47 };
48 console.log(obj);
49
50 </script>
51
52 </body>
53 </html>