——基于es6:Promise/A+ 规范简单实现 异步流程控制思想 前言: nodejs强大的异步处理能力使得它在服务器端大放异彩,基于它的应用不断的增加,但是异步随之带来的嵌套.难以理解的代码让nodejs看起来并没有那么优雅,显得臃肿.类似于这样的代码: function println(name,callback){ var value = { "ztf":"abc", "abc":"def", } setTimeo…
函数默认值问题 在ES6之前,不能直接为函数指定默认值,但是ES6允许为函数的参数设置默认值 之前实现方式 function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello World 解析:缺点在于如果给参数y赋值了,但是对应的布尔值是false,则会出现最后一…
let命令 为es6新增命令,用来声明变量,类似于var,但是let所声明的变量,只在let命令所在的块级作用域内有效 块级作用域写法(ES6块级作用域允许任意嵌套): // 块级作用域写法 { let tmp = ...; ... } 块级作用域例1 for (let i = 0; i < 10; i++) { // ... } console.log(i);//ReferenceError: i is not defined 解析:上面代码中,i的作用域是for循环体内,在循环体外引用就会报…
1.for of 值遍历 for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值. var someArray = [ "a", "b", "c" ]; for (v of someArray) { console.log(v);//输出 a,b,c } 2.iterator, generator基本概念 2.1 iterator:它是这么一个对象,拥有一个next方法,这个…
参考链接: http://www.jianshu.com/p/ebfeb687eb70 http://www.cnblogs.com/Wayou/p/es6_new_features.html 1.let, const 这两个的用途与var类似,都是用来声明变量的,但在实际运用中他俩都有各自的特殊用途. 1.1第一种场景就是你现在看到的内层变量覆盖外层变量 var name = 'zach' while (true) { var name = 'obama' console.log(name)…
模板字符串 传统写法 var str = 'There are <b>' + basket.count + '</b> ' + 'items in your basket, ' + '<em>' + basket.onSale + '</em> are on sale!' ES6写法 let str = ` There are <b>${basket.count}</b> items in your basket, <em>…
定义 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构 数组的解构赋值 以前,为变量赋值,只能直接指定值. let a = 1; let b = 2; let c = 3; es6写法 let [a, b, c] = [1, 2, 3]; 不完全解构--解构不成功,值都会等于undefined let [x, y, ...z] = ['a']; x // "a" y // undefined z // [] let [bar, foo] = [1]; foo…
ES6 通过字面量语法扩展.新增方法.改进原型等多种方式加强对象的使用,并通过解构简化对象的数据提取过程. 一.字面量语法扩展 在 ES6 模式下使用字面量创建对象更加简洁,对于对象属性来说,属性初始值可以简写,并可以使用可计算的属性名称.对象方法的定义消除了冒号和 function 关键字,示例如下: // Demo1 var value = "name", age = 18 var person = { age, // age: age ['my' + value]: 'Jenny…
ES6提供了新的数据结构Set,它类似于数组,但是成员的值是唯一的,没有重复的值(对于基本类型来说).Set本身是一个构造函数,用来生成Set数据结构. 1.声明 let set = new Set(); // 即创建了一个空的set 2.赋值 let set1 = new Set(['张三','李四','王五']); console.log(set1) // 输出为:Set(3) {"张三", "李四", "王五"} 3.属性:使用size求集…