es6中的部分新特性

1、es6中变量声明可以使用let声明变量,用const声明常量。例:

test:function(){
  {
    var num=10;
    let num1=11;
    const num2=12;
  }  
  console.log(num);  //10
  console.log(num1);  //报错
  console.log(num2);  //报错
}

2、es6中的模板字符串。使用反撇号字符`代替普通字符串的引号'或"。例:

test:function(){
  var num=12;
  var num1=15;
  var str=`${num}+${num1}=${num+num1}`;
  console.log(str);  //12+15=27
}

3、箭头函数。例:

test:()=>{
  num=[1,2,3,4,5,6,7];
  num.forEach(function(v){
    console.log(v);  //输出数组中的每个值
  })
  //使用箭头函数(=>符号取代function,当参数只有一个的时候,可以省略参数外面的括号)
  num.forEach(v=>{
    console.log(v);  //输出数组中的每个值
  });
  //参数的扩展
  function root(num=4){
    console.log(num);
  }
  function root1(...num){
    let sum=0;
    for(let n of num){
      sum+=n;
    }
  }
  root();  //4  没有参数的时候默认值为4
  root(8);  //8  传递参数的时候所传的参数取代默认值
  root1(1.2);  //1.2
  root1(1,2,3,4,5) //15
  //this作用域
  wx.getSystemInfo({
    success:function(res){
      this.setData({  //没有使用箭头函数时,这样写会报错,因为this指向是wx.getSystemInfo
        //假设data里面有定义一个name的值
        name:"123"
      })
    success:res=>{
      this.setData({  //使用了箭头函数,this指向是test,所以可以修改data里面的值
      //假设data里面有定义一个name的值
      name:"123"
      })
    }
  })
}

4、增强的变量字面量。例:

test:function(){
  var tool={
    ['str'+'name'+'you']:"ok",
  };
  console.log(tool);  //strnameyou:ok
}

5、解构赋值:es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,叫做解构

  ①:数组的解构赋值,可以从数组中提取值,按照对应位置,对变量赋值

  ②:对象的解构赋值

  ③:字符串的解构赋值,字符串被转换成了一个类似数组的对象

  ④:函数参数的解构赋值

test:function(){

  //数组的解构
  var num=[45,46,85,22];
  var [a,b,c,d]=num;
  console.log(a,d);  //45,22

  //对象的解构
  var tool={
    name:"loop",
    age:12,
    sex:'男'
  };
  var {name,sex}=tool;
  console.log(name,sex);  //loop,男

  //字符串的解构赋值
  var [a,b,c,d]="java";
  console.log(a,b,c,d);  //j a v a

  //函数的解构赋值
  function tt([x,y]){
    console.log(x,y);  //1,2
  }
  tt([1,2]);
}

6、类:Class是es6引入的最重要的特性之一,在没有Class之前,我们只能通过原型链来模拟类

test:function(){
  var Root=function(){
    
  };
  Root.prototype.eat=function(){
    console.log("es5 eat");
  }
  Root.doing=function(){
    console.log("es5 eat")
  }

  let a=new Root();
  a.eat();  //es5 eat
  Root.doing();  //es5 eat

  class Roots{
    constructor(){
      
    }
    eat(){
      console.log("Es6 eat");
    }
    static doing(){
      console.log("Es6 doing");
    }
  }
  let b=new Roots();
  b.eat();  //Es6 eat
  Roots.doing();  //Es6 doing
}

 

posted @ 2019-04-19 10:30  超哥20  阅读(200)  评论(0编辑  收藏  举报