ES6 标准入门 笔记1
一、ECMAScript
1. ECMAScript 和 JavaScript的关系:前者是后者的规格,后者是前者的实现。
2. ES6 指的是 ES5.1 版本以后的 JavaScript D 下一代版本。
3. 初版 ES6 从制定到发布经历了15年(2000 - 2015)。(ES2015: 2015年6月发布)
4. ECMAScript 提案阶段:
4.1 Strawman(展示阶段);
4.2 Proposal(征求意见阶段);
4.3 Draft(草案阶段);
4.4 Candidate(候选阶段);
4.5 Finished(定案阶段)。
5. ECMAScript 每个新版本正式发布时间:每年 6 月份。
二、var、let 、const、块级作用域
1. var 声明的变量是全局变量(在函数作用域内var声明的变量不是全局变量),在全局范围内都有效;(let、const 声明的变量不是全局变量,且不会影响到外部作用域和不受外部作用域的影响)
2. var 声明的变量在同一作用域可以再次 var 声明;(let、const 声明的变量不得再次在同一作用域声明)
3. function、var 声明的变量会存在变量提升;(let、const 不存在变量提升)
4. 在函数内部,var 可再次声明参数,但是不得使用 let 或者 const 再次声明参数;
5. const 声明的变量不可重新赋值;(变量指向内存地址的值不能改变)
6. const 声明的变量必须声明时赋值;
7. 作用域:
7.1 ES5 只有全局作用域、函数作用域,导致很多场景不合理(1 内层变量可能会覆盖外层变量;2 用来计数的循环变量泄漏为全局变量)
7.2 ES6引入了块级作用域,在 ES6浏览器 中,声明函数有以下几点规定:
7.2.1 允许在块级作用域内声明函数;
7.2.2 函数声明会提升到全局作用域或函数作用域头部;
7.2.3 函数声明还会提升到所在块级作用域的头部。
7.3 在ES6中,在块级作用域内声明函数,类似于let 声明变量,对外部作用域无影响
8. 变量声明有六种:var、let、const、function、class、import。
天行健,君子以自强不息;地势坤,君子以厚德载物。(^_^)