@chris-ren
2016-04-27T07:57:49.000000Z
字数 1787
阅读 1059
ES6
ECMAScript
ECMAScript是什么?
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。
ECMAScript如何产生?
我们知道JavaScript或者说LiveScript最开始是Netscape搞出来的,后来微软也跟进搞出了Jscript,ScriptEase也有自己的CENvi,这样就有了三个版本的浏览器Script各行其是,大家懂这个混乱的,于是乎标准化的问题被提上议事日程。1997年以JavaScript1.1为蓝本的建议被提交到欧洲计算机制造商协会( E uropean C omputer M anufacturers A ssociation),最后大家载歌载舞搞出了ECMA-262——一种名为ECMAScript的新脚本语言标准。第二年,ISO/IEC(国际标准化组织和国际电工委员会)也采用ECMAScript作为标准,此后天下太平,各大浏览器厂商以ECMAScript作为各自实现JavaScript的基础,当然只是基础,没完全按照来,否则我们也不会有那么多浏览器兼容性问题。
ECMAScript与JavaScript有什么关系?
虽然我们经常拿着两个东西表达相同的含义,但正如刚才提到,JavaScript是各大浏览器厂商基于ECMAScript的实现,也就是说ECMAScript是标准,而JavaScript是真正的语言。JavaScript致力于用户和浏览器交互,所以在ECMAScript基础上拓展了很多内容(比如DOM-文档对象模型和BOM-浏览器对象模型),因此在ECMAScript发布新特性后,各大主流浏览器要实现新特性需要一定的时间。
最新版本JavaScript的官方名称是ECMAScript 2015也称为ES6。
但是,目前,没有一款完全支持ES6的JavaScript代理(无论是浏览器环境还是服务器环境),所以热衷于使用语言最新特性的开发者需要将ES6代码转译为ES5代码(可以通过Babel转换编译器进行转换)。等到主流浏览器完全实现ES6特性大概需要一年左右的时间,若想一睹各代理对于ES6特性的支持情况,推荐大家参考由kangax维护的ECMAScript Compatibility Table。
ECMA规范文档edition 6:
PDF文件:ECMA-262.pdf
Browsable HTML:ECMA-262 edition 6
之前版本的 ECMA 标准请看 这里.
======
1. for-of 循环
通过for-of 循环可以遍历数组、集合
for(var value of myArray) {
console.log(value);
}
同样支持Map和Set的遍历,ES6中引入了Map和Set的概念
// 基于单词数组创建一个 set 对象
var uniqueWords = new Set(words);
for (var word of uniqueWords) {
console.log(word);
}
Map 对象稍有不同:内含的数据由键值对组成,所以你需要使用解构(destructuring)来将键值对拆解为两个独立的变量:
for (var [key, value] of phoneBookMap) {
console.log(key + "'s phone number is: " + value);
}
在此之前我们使用过forEach和forin
myArray.forEach(function (value) {
console.log(value);
});//无法使用break或return
for (var index in myArray) {
console.log(myArray[index]);
}//index是字符串类型,而且会遍历所有的对象属性
for-in 循环用来遍历对象属性。
for-of 循环用来遍历数据—例如数组中的值、集合中的数据等