ES6

1.回调使用promise,同步执行

 1     let pro = function(data){
 2         return new Promise((resolve,reject)=>{//使函数return对象,使能then
 3             setTimeout(()=>{
 4             console.log(data);
 5             resolve("hello!");
 6         },1000)
 7     })
 8     };
 9 
10     pro(1).then(function(res){//res:接收成功 "hello!", then(()=>pro(2)) 不写{},自带return
11         console.log(res);
12         return pro(2);
13     }).then(function(res){
14         console.log(res);
15         pro(3)});
16 
17     结果:
18     1
19     hello!
20     2
21     hello!
22     3

2.常量 const 定义变量大写

3. 字符串用单引号或模板包裹,禁止双引号,模板字符串的使用

4设置对象变量键值的语法

let myKey = 'variableKey'
let obj = {
    key1: '1',
    [myKey]: '2'
}

 

5.箭头函数尽量处理简单函数

6.find/findIndex 代替 indexOf

let ages = [12, 19, 6, 4];
let firstAdult = ages.find(age => age >= 18);    // 19
let firstAdultIndex = ages.findIndex(age => age >= 18);    // 1

 

7.扩展运算符 替代 Array.from

Math.min(2,3,4)    // 2
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]


let numbers = [2,3,4]
Math.min(...numbers);    //2
// 能够把可迭代对象( NodeList, arguments 等等) 转为真正的数组
let divsArray = [...document.querySelectorAll('div')];

 

8.数组去重,tips:[...new Set(array)]  同样适用于字符串去重 [...new Set(string)].join('')

 let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
 let set = new Set(array);
 console.log(set);

// => Set {1, 2, 3, 4, 5}

//配合 Array.from
let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
console.log(array);
// => [1, 2, 3, 4]

9.少写 if else

// 优雅,推荐
const keyArr = ['1,2,3,4,5', '40'] const valArr = [f1, f2] const getVal = (param = '') => { let index = keyArr.findIndex( it => { return it.inclues(param) }) return valArr[index] } let a = 2 let handle = getVal(a) handle()
// es
const map1 = new Map()
const statusArr = [1,2,3,4,5]
map1.set(statusArr, f1)
let handle = function () {}
const getVal = (param = '') => {
    for (let value of map1.entries()) {
        console.log(JSON.stringify(value))
        if (value[0].inclues(param)) {
             handle = value[1]
        }
    }
}
const a = 2
getVal(a)
handle()

10.for-of,   tips: ES5  forEach, for-in   通用  for

11.解构

function fn2 ({x=0, y=0}={x:2, y:2}) {
    console.log(x, y)
}
fn2()   //解得  2  2
fn2({})  //解得 0  0

 

posted @ 2017-12-11 10:52  blackatall  阅读(141)  评论(0编辑  收藏  举报