详述
ES6 是 2015 年发售的捷伊 js 国际标准,又称:ECMACScript 2015 国际标准部份旧版本应用程序不全力支持 ES6 的间接导出透过 babel 能将 ES6 标识符切换为 ES5 同时实现大部份应用程序的全力支持ES6 提高程式设计工作效率和标识符的简约度应用程序相容软件系统
chrome 应用程序 正式版 62+全然全力支持 ES6 (import export)ES6 透过 babel 展开切换: http://babeljs.io/repl/let & const 与 var 的差别
表达式新闻稿 var
透过 var 新闻稿的表达式会间接新闻稿到自上而下(window)返回值 上for (var i = 0; i < 3; i++) { console.log(i); } console.log(i); console.log(window.i); 0 1 2 3 3难题:var 新闻稿的表达式假如想同时实现局部性返回值根本无法透过表达式返回值来同时实现//这儿的表达式i 依然是做为了自上而下表达式在采用 (function() { for (var i = 0; i < 3; i++) { console.log(i); } })(); console.log(i); console.log(window.i); 0 1 2 i is not defined示例 异步打印出每次循环的键值(假如不采用匿名表达式传递i的参数会输出3次:3)for (var i = 0; i < 3; i++) { (function(i) { setTimeout(function() { console.log(i); }, 1000); })(i); } 0 1 2let 同时实现局部性返回值
let 和 { } 配合能产生一个捷伊返回值for (let i = 0; i < 3; i++) { setTimeout(function () { console.log(i) }, 1000) } 0 1 2var 进行了表达式提高
透过var新闻稿的表达式会自动将新闻稿语句默认提高到最前面展开执行,但是对于读标识符和理解程序的自上而下运行的流程不太好,同时也会造成表达式的自上而下污染。
console.log(a); var a = 1;console.log(a); // unidefined // 1 console.log(a); let a = 1; console.log(a); // a is not defined暂存死区
假如当前返回值内有定义这个表达式就不会向上查找,假如没有定义会自动向上查找这个表达式的值
let a =1; { console.log(a) } // 1 //暂存死区 let a =1; { console.log(a); let a = 2; } // Cannot access a before initializationconst 表达式新闻稿
const 拥有let 大部份的特性,唯一的差别就是const新闻稿的表达式不可被修改引用空间
const b =1; const b =2; console.log(b); // Identifier b has already been declared const children = {age:12}; children.age = 5; children.sex = 女; console.log(children); // {age: 5, sex: “女”}