Several new features of ES6

1. Arrow functions

function sum1(num1, num2) {

    return num1 + num2;

}

console.log(sum1(1, 2));

var sum2 = function (num1, num2) {

    return num1 + num2;

}

console.log(sum2(3, 4));

var sum3 = (num1, num2) => {

    return num1 + num2;

}

console.log(sum3(5, 6));

var sum4 = (num1, num2) => num1 + num2;

console.log(sum4(7, 8));

var arr = [1, 2, 3, 4, 5, 6];

var newarr1 = arr.map(function (obj) {

    return obj * 2;

});

console.log(newarr1);

var newarr2 = arr.map((obj) => obj * 2);

console.log(newarr2);

var newarr3 = arr.map(obj => obj * 2);

console.log(newarr3);

//1.去掉function;

//2.括号后面加箭头;

//3.如果逻辑代码仅有return,那么return也可以省去;

//4.如果参数只有一个,括号也可以去掉。

2. Template strings

var message ={

    name:"Tom",

    address:"China",

}

var print1 = "ES5--我是"+message.name+",来自于"+message.address+"";

var print2 = `ES6--我是${message.name},来自于${message.address}`;

console.log(print1);

console.log(print2);

3. Spread operator

//对象传播操作符...

//如果将解构出来的数据取走,再使用传播操作符的话,就会将剩下的数据传给新对象

var message1 = {

    name: "Tom",

    car: "Porsche-911",

    link: "https://www.baidu.com",

    func: function () {

        console.log("这是一个函数1");

    }

};

var {name, car,...message2} = message1;

console.log(name,car);

console.log(message2);

4. Object shorthand and object deconstruction

//传统定义对象:

var message1 = {

    name1: "Tom",

    car1: "Porsche-911",

    link1: "https://www.baidu.com",

    func1: function () {

        console.log("这是一个函数1");

    }

};

console.log(message1);

//ES6定义对象:

var name2 = "Tom";

var car2 = "Porsche-911";

var link2 = "https://www.baidu.com";

var message2 = {

    name2,

    car2,

    link2,

    func2() {

        console.log("这是一个函数2");

    }

}

console.log(message2);

//除了可以用.的方式获取对象元素,还可以将.换成[]

console.log(message2.name2);

message2.func2();

console.log(message2["name2"]);

message2["func2"]();

//传统方式

var name2 = message2.name2;

var car2 = message2.car2;

//对象解构

var {name2, car2, func2} = message2;//如果不写这句话,直接无法打印name2,car2,而必须使用message.name2。

console.log(name2, car2);

func2();

5.Map and Set

//Map

var map = new Map([['Tom', 111], ['Jerry', 222]]);

var name = map.get('Tom');//输出为111,使用Map可以通过key获得value

console.log(name);

map.set('Jack', 666);//输出为Map(3) { Tom → 111, Jerry → 222, "Jack" → 666 },使用set方法可以实现添加数据

console.log(map);

//Set

var arr = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5];

var set = new Set(arr);

console.log(set);//输出为Set(5) [ 1, 2, 3, 4, 5 ],使用Set可以实现数组去重

6. map and reduce

//map方法的使用

var arr = [1, 2, 3, 4, 5, 6];

var newarr = arr.map(obj => obj * 2);

console.log(newarr);

var data = [{name: "zhang_gm", age: 18}];

var newdata = data.map(obj => {

    obj.age = obj.age + 1;

    return obj;

});

console.log(newdata);

//reduce方法的使用

//a=1,b=2;

//a=3,b=3;

//a=6,b=4;

//a=10,b=5;

//a=15,b=6;

//a=21,b=7;

//a=28,b=8;

//a=36,b=9;

//a=45,b=10;

//遍历完成,返回a+b=55

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

var newarr = arr.reduce((a, b) => a + b);

console.log(newarr);

Guess you like

Origin blog.csdn.net/bDreamer/article/details/120904689