ES6

作者: 奋斗的小小小兔子 | 来源:发表于2018-07-17 17:46 被阅读4次
    1. 常量 ----只读
    // ES5的写法
    Object.defineProperty(window, "PI2", {
      value: 3.1415926,
      writable: false,
    })
    
    // ES6的写法
    const PI = 3.1415926;
    
    
    
    1. 作用域
    {}
    
    
    1. 箭头函数
    // ES5
    var evens = [1, 2, 3, 4, 5];
    var odds = evens.map(function(v) {
      return v+1;
    })
    console.log(evens, odds);
    
    
    // ES6
    let evens = [1, 2, 3, 4, 5];
    let odds = evens.map(v => v+1);
    console.log(evens, odds);
    
    // ES6中小括号中传入的参数,如果只有一个则可以省略括号。
    // 花括号中的表达式直接作为返回值时,可以省略花括号
    
    () => {
      
    }
    
    
    
    1. 默认参数
    // ES5
    
    let f = function (x, y, z) {
      x = x || 1;
      y = y || 2;
      z = z || 3;
      return x+y+z;
    }
    console.log(f(), f(3,4));
    
    //ES6
    let f = (x = 1, y = 2, z = 3) => x+y+z;
    console.log(f(), f(3,4));
    
    
    // 可变参数累计和 ES5
    function f() {
      var a = Array.prototype.slice.call(arguments);
      return a.reduce((i, j) => i+j);
    }
    
    console.log(f(1,3));
    
    
    // 可变参数求累计和ES6
    function f(...a) {
      return a.reduce((i, j) => i+j);
    }
    
    console.log(f(1,3));
    
    
    // ES5 合并数组
    var params = [1, '4', '3333'];
    var other = [1, '4'].concat(params);
    console.log(other);   // [1, "4", 1, "4", "3333"]
    
    // ES6 合并数组
    var params = [1, '4', '3333'];
    var other = [1, '4', ...params];
    console.log(other);   // [1, "4", 1, "4", "3333"]
    
    // ES6利用扩展运算符对象
    var params = {
        a: 1, 
        b: '4', 
        c: '3333'
    };
    var other = {
        a: 3, 
        b: '4', 
        ...params
    }; 
    
    console.log(other);  //后面的值覆盖了前面{a: 1, b: "4", c: "3333"}
    
    1. 对象代理
    
    let Person = {
      name: 'es6',
      sex: 'male',
      age: 15
    };
    
    let person = new Proxy(Person, {
      get(target, key) {
        return target[key];
      }
      set(target, key, value) {
        if(key!=='sex') {
          target[key]=value;
        }
      }
    })
    
    console.table({
      name: person.name,
      sex: person.sex,
      age: person.age,
    })
    
    try {
      person.set = 'female';
    } catch(e) {
      console.log(e);
    } finally {
      
    }
    

    相关文章

      网友评论

          本文标题:ES6

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