zoukankan      html  css  js  c++  java
  • 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里面的面向对象写法大大节俭了代码

  • 相关阅读:
    磁盘IO工作机制
    java 的IO类库的基本架构
    诡异的NPE--三目运算自动类型转换
    WIN2008服务器不能复制粘贴怎么办
    用nrm一键切换npm源
    Linux常用命令大全(非常全!!!)
    整理 node-sass 安装失败的原因及解决办法
    win10完美去除小箭头
    JS中slice,splice,split的区别
    Win10环境下Redis和Redis desktop manager 安装
  • 原文地址:https://www.cnblogs.com/ruanwei/p/6473321.html
Copyright © 2011-2022 走看看