ES6

2019-04-25  本文已影响0人  Grayly吖

五、ES6

1、ES6声明变量

(在es6之前,js没有块极作用域,区分作用域是以function来区分的)
(在es6之前,使用var声明变量,所以for循环,if语句等等中声明的变量都是全局变量)

2、常量const

3、对象的简洁表达方式

    // es5的写法
    var username = 'zhansna';
    var age = 20;

    var person = {
        username: username,
        age: age,
        speak:function() {
            console.log('he speak english')
        }
    }
    console.log(person);

    // es6的写法
    let name = '白猫';
    let age2 = 2;
    const cat = {
        name,  //键名跟键值相同时,可以省略
        age2,
        speak() { //对象中的方法 `:function` 可以省略
            console.log('mao mao');
        }
    }
    console.log('cat',cat);
    cat.speak();

4、箭头函数

(常用于函数表达式)

     // 箭头函数
    const add2 = (a,b) => {
        return a+b;
    }
    let arr = [1,23,4];
    arr.forEach(item=>{
        console.log(item);
    });
    // 更简单的写法
    // 求平方
    var s = function(a) {
        return a*a;
    }
    // 等同于上面的写法
    let s2 = a=>a*a;

5、解构赋值

    const cat = {
        name: '白猫',
        age: 2,
        color: '黑色'
    }
    // 对象解构
    let { age } = cat;
    console.log(age);
    let arr = [111, 222, 333];
    let [a, b, c] = arr;
    console.log(a);
    // 函数中的对象解构
    let data = {
        username: 'zhangsan',
        password: '123'
    }
    let test = ({ username, password }) => {
        console.log(username);
        console.log(password);
    }
    test(data);

6、扩展运算符:... 相当于复制

    var obj = {
        name: 'zs',
        age: 2,
        color: 'red'
    }
    // 对象的for循环,复制对象
    var obj2 = {};
    for (var p in obj) {
        // p是obj的属性
        console.log(p, '---', obj[p]);
        obj2[p] = obj[p];
    }
    console.log(obj2);

es6:使用扩展运算符(...)复制对象,同时还可以修改或增加属性

    // 扩展运算符
    let cat = {
        name: '白猫',
        age: 2
    }
    // 复制对象,同时可以修改或增加属性
    let cat2 = {
        // 扩展运算符...,作用是将cat的所有属性和值都放进cat2
        ...cat,
        // 添加新的属性,或者修改原有的属性
        color: 'white',
        age: 10
    }
    console.log('cat2', cat2);
    var arr = [1,2,3];
    var arr2 = [...arr];
    console.log('arr2',arr2);

使用**扩展运算符(...)合并数组

    let list1 = ['a','b','c'];
    let list2 = ['d','e','f'];
    
    // js5的数组合并方法
    let list3 = list1.concat(list2);
    console.log('list3',list3);

    // es6数组合并
    let list4 = [...list1,...list2];
    console.log('list4',list4);
上一篇 下一篇

猜你喜欢

热点阅读