ES6语法

作者: 壹豪 | 来源:发表于2018-08-06 15:37 被阅读0次

1.变量的结合

//声明两个变量
let variable1 = '结合';
let variable2 = '2';
//写法一
let constant1 = '常量和变量的' + variable1 + '有' + 'variable2' + '种写法!';
//写法二
let constant2 = '常量和变量的${variable1}有${variable2}种写法!';
//结果
console.log(constant1);      //常量和变量的结合有2种写法!
console.log(constant2);      //常量和变量的结合有2种写法!
console.log(constant1===constant2);      //true

2.设置默认变量

//设置默认变量
function breakfast(drink='milk',dessert='bread'){
    return '早餐是${drink}和${bread}'
}
//默认变量
console.log(
    breakfast();      //早餐是milk和bread
}
//参数修改变量
console.log(
    breakfast(soup,sandwich);      //早餐是soup和sandwich
}

3.spread (...)

let fruits = ['apple','pear'];
let foods = ['watermelon','...fruits'];

console.log(fruits);       // ['apple','pear']
console.log(...fruits);    // apple pear
console.log(foods);       // ['watermelon','apple','pear']
function breakfast1(dessert,drink,...foods){
    console.log(dessert,drink,foods);
}
function breakfast2(dessert,drink,...foods){
    console.log(dessert,drink,...foods);
}
//输出多个参数,除了前两个之外全部赋给foods作为数组
//如果需要将foods数组拆开,输出时也加上...即可
breakfast1('bread','milk','apple','pear');   //  bread milk ['apple','pear']
breakfast2('bread','milk','apple','pear');   //  bread milk apple pear

4.数组赋值

let food = {};
let drink = 'hot drink';

food.dessert = 'bread';
food.hot drink = 'soup';
console.log(food);    //error --- hot drink中间有空格,不能直接当属性
//属性名可以用变量代替
food[drink] = 'milk';
console.log(food);    //Object {dessert :'hot drink',hot drink:'milk'}
food['hot drink'] = 'coffee';
console.log(food);    //Object {dessert :'hot drink',hot drink:'coffee'}

5.判断两个值是否相等

console.log(+0 == -0);    //true
console.log(+0 === -0);    //true
console.log(NaN == NaN );    //false
console.log(NaN  ==NaN );    //false
Object.is(NaN,NaN);    //true
Object.is(+0,-0);      //false

6.Object.getPrototypeOf()

let breakfast = {
    getDrink() {
        return 'milk';
    }
}
let dinner = {
    getDrink() {
        return 'soup';
    }
}
let sunday = Object.create(breakfast);
console.log(sunday.getDrink());      // milk
console.log(Object.getPrototypeOf(sunday) === breakfast);  // true
//使用Object.setPrototypeOf修改prototype
Object.setPrototypeOf(sunday,dinner);
console.log(sunday.getDrink());      // soup
console.log(Object.getPrototypeOf(sunday) === dinner);  // true

7.proto

let breakfast = {
    getDrink() {
        return 'milk';
    }
}
let dinner = {
    getDrink() {
        return 'soup';
    }
}
//使用__proto__设置prototype
let sunday = {
    __proto__:breakfast;
}
console.log(sunday.getDrink());      // milk
console.log(Object.getPrototypeOf(sunday) === breakfast);  // true
sunday.__proto__ = dinner;  //使用__proto__修改prototype
console.log(sunday.getDrink());      // soup
console.log(Object.getPrototypeOf(sunday) === dinner);  // true

8.super

let breakfast = {
    getDrink() {
        return 'milk';
    }
}
//使用super调用prototype的方法
let sunday = {
    __proto__:breakfast,
    getDrink() {
    return super.getDrink() + 'soup';
    }
}
console.log(sunday.getDrink());      // milk soup

9.Map

let food = new Map();
let fruit ={} , cook = function() {} , dessert = '甜点' ;

food.set(fruit,'apple');
food.set(cook,'fork');
food.set(dessert,'hamburger');

console.log(food);  //Map{Object {} => 'apple',function function => 'fork', '甜点' => 'hamburger'}
console.log(food,size);  //3
console.log(food.get(fruit));  apple
console.log(food.get(cook));  //fork
food.delete(dessert);
console.log(food.has(dessert));  //false

food.forEach((value,key) => {
    console.log('${key} = ${value}');  //[object Object] =apple function cook() {} =fork
})

food.clear();
console.log(food);  //Map{}
console效果图

相关文章

网友评论

      本文标题:ES6语法

      本文链接:https://www.haomeiwen.com/subject/zbcwvftx.html