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里面的面向对象写法大大节俭了代码

  • 相关阅读:
    IntStack(存放int型值,带迭代器) 附模板化实现 p406
    Mule自带例子之stockquote
    Mule自带例子之loanbroker-simple
    Mule自带例子之flight-reservation
    hsqldb使用
    基于memcached中命令分析函数tokenize_command改造的split函数
    Memcached-1.4.4启动参数——手动设置chunk大小的上限
    Memcached源码分析——process_command函数解析
    Memcached源码分析——hash
    Memcached源码分析——slab的初始化
  • 原文地址:https://www.cnblogs.com/ruanwei/p/6473321.html
Copyright © 2011-2022 走看看