js-es6

151 阅读1分钟

ESMA 6 2015

  • let const

    • 声明前置

    • 在块级作用域起作用

      • 被大括号包裹的 区域 {};
    • 不会和window绑定

    • 不能被重复声明 ,let 可以赋值 ,const 不能赋值

    let a = 10;
    let a = 20; // 不允许 重复声明 
    a = 30 ; // 可以被重新赋值
    const b = 10;
    const b = 20;  // 不允许重复声明 
    b = 30; // 不允许赋值
    // Math.PI
    //  Math.random 
    // Math.ceil
    
  • 解构赋值

    • 数组的解构
    var arr = [1,2,3];
    let [a,b,c] = arr;
    
    • 对象的解构
    var obj = {
        name:"张三",
        age:20
    }
    let {name,age}  = obj;
    
  • 模板字符串

    • ``反引号
    • 接收三元运算符
  • 展开运算符 : ...

    • 把伪数组转成真正的数组
    var nodelist = document.querySletorAll("li");
    var arr = [...nodelist];
    
    • 参数展开 : 不定参数 ,arguments 的替代方案
    function test(...args){
        console.log(args);
    }
    args
    
    • 合并数组或者对象
    var obj1 = {name:"张三"};var obj2 = {age:20};
    var obj = {...obj1,...obj2};
    
  • 默认参数

function fn(a=10){
    console.log(a);
}
fn();
  • 对象更新

    • 键名和键值相同的时候 可以简写
        var age = 20;
        var obj = {
            age
        }
    
    • 动态下标
    var age = 'age';
    var obj = {
        [age]:20
    }
    
    • 对象里的函数
    var obj = {
        fn(){
            console.log("fn");
        }
    }
    
    • 箭头函数

      • 只能把复制函数改成箭头函数
      • 没有this ,他的this是上层的this
      • 没有arguments
      • 如果没有大括号会自带return
      • 如果只有一个参数 前面的小括号可以省略
  • ES5

    • 改变this指向

      • call
      • apply
      • bind
    • 精确判断复杂数据类型

    Object.prototype.toString.call("要判断的类型");
    
    • json

      • JSON.parse : 把json转成js
      • JSON.stringify : 把js数组转成json数据