1997年 正式成为国际标准,官方名称为ECMAScript。
1999年 定稿第3版ECMAScript标准(简称ES3),最广泛的js版本。
2009年 发布第5版即ES5,引入了一些新特性,标准化了一些被支持了但没规范的特性。目前还未得到广泛支持,书中会特别说明一些条款和建议是否是特定于ES5的。
(ES6,现在都出来了,但我是在看这本书,就不多说了,继续。)
如:const (ES5不支持但ES6是支持的就不多说这个啦,查ES6吧)。
js并不只针对浏览器WEB编程,现在还有NODEJS,浏览器扩展,针对移动和桌面应用程序的脚本。对于各应用场景需要的JS版本各有不同。
这本书主要是关注的是JS的标准特性,也会讨论一些不标准的。讲到不标准的时候会特别说明。
ES5引入严格模式语法如下:
“use strict”;
低版本忽略,因为这就是一个字符串,没有任何操作。高版本会对代码执行严格模式。这个字符串可以放到JS文件的最开头,或函数体的最开头。
加了这个不能重定义arguments,不能没声明就使用变量等。
编写健壮代码应对各种各样的代码合并及压缩,有两个可选方案。
第一个解决方案是不要将进行严格模式检查的文件和不进行严格模式检查的文件合并到一起。(不方便,得时刻注意,不利于后期使用工程化的构建工具)
“use strict”;
//code
第二个解决方案通过将其自身包裹在立即执行的函数表达式中合并多个文件。(哪使哪放),恰好和流行的模块系统类似。
(function(){
“use strict”;
//code;
})();
编写文件使其在两种模式下行为一致。(这里要清楚哪些方法和语法在严格模式下不能用,会专门补充一篇相关的文章)
总结:
1、确定应用程序支持的js的版本(浏览器也是应用程序噢)
2、确保使用的js特性是应用程序支持的(要不写了也运行不了)
3、总是在严格模式下编写和测试代码(面向未来编程)
4、合并代码时注意不同声明的严格模式(还是用第二种解决方案吧,省心)