ES6

ES6是2015年6月推出的ECMAscript新版本,里面有很多改进的新语法。

****************************************************************************************************************************

let  用来声明变量

var 和 let的区别:

let:       1,同一个作用域下一个变量只能声明一次

           2,没有变量预解析

           3,拥有块级作用域

 

var:   1,可以重复声明相同的变量

          2,变量预解析

          3,没有块级作用域

一对{}包裹的区域是一个代码块,let拥有块级作用域。

{

     let a=10;

     alert(a);   //这里出来10

}

alert(a)  //这里访问不到里面的a

****************************************************************************************************************************

const 声明一个常量

      特性 :

            1,常用的值是不可变的值。

            2,没有预解析

            3,不能重复声明

            4,块级作用域

{

            const a=10;

            console.log(a);//10  如果重复声明a也会出错

}

          console.log(a) //报错

****************************************************************************************************************************

变量的解构和赋值:

         var  {a,b,c}={a:12,b:5,c:8};

         alert(c)//8

         var [a,b,c]=[5,3,66];

         alert(b)//3

复制数组:

1,

var arr=[2,4,6];

var arr1=Array.from(arr);

arr1.pop();

console.log(arr,arr1);//246 ,24

2,超引用

var arr=[1,2,3];

var arr1=[...arr];

arr1.pop();

console.log(arr,arr1);//123 ,12

数组解构赋值:

       按照顺序进行解构

对象结构赋值:

       按照属性名进行解构

****************************************************************************************************************************

for of循环:可以循环数组,但不能循环json;

                真正目的为了循环map对象

Map对象:

          和json相似,也是一种key-value形式

          Map对象为了和for of循环配合而生的;

//var map=new Map();

设置:

//map.set(name,value);

获取:

//map.get(name)

删除:

//map.delete(name);

遍历map不能使用for in

var map=new Map();

     map.set('a','a1');

     map.set('b','b1');

     map.set('c','c1');

     map.set('d','d1');

 for(var name of map){//key value 的形式

          console.log(name)//a,a1 b,b1 c,c1 d,d1

}

//单个循环一个

for(var val of map.values()){

       console.log(val)//a1,b1,c1,d1

}

for(var key of map.keys()){

       console.log(key)//a,b,c,d

***************************************************************************************************************************

箭头函数:

注意事项:

       1, this的指向问题,this指向window;

       2,arguments ,不能使用。

obj.onclick=()=>{

obj.style.background="blue";

}

****************************************************************************************************************************

面向对象:

class person{//类

       constructor(name,age){

           this.name=name;

           this.age=age;

     }

     showname(){//方法

         return this.name;

    }

    showAge(){//方法

         return this age;

    }

}

var p1=new person('aa',5);

var p2=new person('bb',1);

alert(p1.showName==p2.showName)//true

//es6里面的面向对象写法大大节俭了代码

 

posted @ 2017-02-27 12:46  小慕白  阅读(151)  评论(0编辑  收藏  举报