ECMAScript 6

ECMAScript 和 JavaScript 到底是什么关系? 要讲清楚这个问题,需要回顾历史。1996年11月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给国际标准化组织ECMA,希望这种语言能够成为国 际标准。次年,ECMA 发布262号标准文件(ECMA-262)的第一版,规定了浏览 器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是1.0版。 该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有 两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样 有利于保证这门语言的开放性和中立性。 因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一 种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两 个词是可以互换的 《ECMAScript 6 入门》

ES6和CommonJS的区别

  1. 增加的let 只在代码块中有效。
  2. 新增块级作用域
  3. 函数可以在块级作用域声明,但是尽量避免。兼容问题。
  4. do
let x = do {
let t = f();
t * t + 1
}

Babel

声明变量

<aside> 💡

es5只有两种varfunction ,es6增加了let ,const ,import ,class

</aside>

顶层对象的属性

在浏览器环境中指window ,node环境中指global

es5中顶层对象的属性和全局变量是等价的。

window.a = 1;
a // 1
a = 2;
window.a // 2;