zoukankan      html  css  js  c++  java
  • es6 语法

    /*定义变量*/

      let a = 3; //变量
      const b = 5; //常量

    /*数组解构 和 嵌套数组解构*/
      let[a,b,c,d] = ["aa","bb",77,88];
      let[e,f,[e,f]] = ["aa","bb",[55,66]];
      alert(e)

    /*对象解构*/
      let obj = new Object();
      obj.uid = 111;
      obj.uname = "张三";
      let {uname:name,uid:id} = obj;//顺序无所谓
      alert(name);

    /*字符串解构*/
      let [a,b,c,d] = '倚天屠龙';
      alert(a);

    /*Symbol 唯一不重复*/
      let a = Symbol(3);
      let b = 3;
      alert(a==b);

    /*自动去掉重复数据*/
      var set = new Set([1,2,3,4,5,4]);
      for(var i of set){
        console.log(i);
      }

    /*es5里面的map*/
      [1,2,3,4,5,6,7].map(function(i){
        console.log(i);
      })

    /*...变成数组*/
      var set = new Set([1,2,3,4,2,8,4]);
      var arr = [...set];
      console.log("set= "+set);
      console.log("arr= "+arr);

    /*删除和清空*/
      var set = new Set([1,2,3,4,2,8,4]);
      set.delete(2);
      set.clear();
      console.log(set);

    /*forEach 循环遍历*/
      var set = new Set([1,2,3,4,2,8,4]);
      set.forEach(function(value,key){
        console.log(value+"----"+key)
      })

    /*过滤的方法*/
      var fiterArr = [ 1,2,3,4,2,8,4].filter(function(elem){
        if(elem>3){
          return true;
        }else{
          return false;
        }
      })
      console.log(fiterArr);

    /*两个数组求并集*/
      let a = new Set([1,2,3]);
      let b = new Set([3,4,5]);
      let union = new Set([...a,...b]);
      console.log([...union]);

    /*两个数组求交集*/
      let a = new Set([1,2,3]);
      let b = new Set([3,4,5]);
      let intersect = [...a].filter(function(elem){
        return b has(elem);
      });
      console.log(intersect);

    /*两个数组求差集*/
      let a = new Set([1,2,3]);
      let b = new Set([3,4,5]);
      let difference = [...a].filter(function(elem){
        return !b has(elem);
      });
      console.log(difference);

    /*weakset 不能取值,也不能显示,只能判断是否有重复的对象*/
      var weakset = new WeakSet();
      let aObj = {a:'aa'};
      let bObj = new String("你好");
      let cObj = new Number(8);
      weakset.add(aObj);
      weakset.add(bObj);
      weakset.add(cObj);

           weakset.delete(bObj);

      console.log(weakset.has(bObj));

    /*替换 最后obj[key] 就一个66*/
      let objKey1 = {};
      let objKey2 = {};
      let obj = new Object();
      obj[objKey1] = 33;
      obj[objKey2] = 66;
      for (let key in obj) {
        console.log(obj[key]);
      }

    /*map*/
      var mapData = new Map();
      var objKey1 = {};
      var objKey2 = {};
      mapData.set(objKey1,"333");
      mapData.set(objKey2,"666");
      console.log(mapData.get(objKey1));
      console.log(mapData.has(objKey1));
      console.log(mapData.delete(objKey1));
      mapData.clear();

    /*WeakMap 不可遍历,所以没有size属性*/
      var wm = new WeakMap();
      var obj = new Object();
      wm.set(obj,'对象1');
      obj = null;
      console.log(wm.get(obj));
      console.log(wm.has(obj));

    /*Iterator 遍历器*/
      let arr = ["123",4,"www.baidu.com","北京大学"];
      let it = arr[Symbol iterator](); //变成遍历器’
      for(;;){ //while true 快四倍
        let elem = it.next();
        if(elem.done){
          break ;
        }
      }
      console.log(it.next());
      console.log(it.next());
      console.log(it.next());
      console.log(it.next());
      console.log(it.next());

    /*promise */
      let param;
      function p1(){
        return new Promise(function(resolve,reject){
          setTimeout(function(){
            console.log("aaa");
            param="我是123"; //传值可以用这个
            resolve(123);//返回值必填
            reject(123);//错误代号。必填
          },3000)
        })
      }
      function p2(){
        return new Promise(function(resolve,reject){
          setTimeout(function(){
            console.log("bbb");
            resolve(456);
          },2000)
        })
      }
      function p3(){
        return new Promise(function(resolve,reject){
          setTimeout(function(){
            console.log("ccc");
            resolve(789);
            console.log(param);
          },1000)
        })
      }
      p1().then(p2).then(p3).then(function(data){
        console.log("结束--"+data);
      }).catch(function(err){
        console.log('出错:'+err);
        if(err == 123){
          p2().then(p3);
        }
      })

    /*async*/
      var sleep = function(time){
        return new Promise(function(resolve,reject){
          console.log("执行");
          setTimeout(function(){
            resolve();
          })
        })
      }
      let ten = [1,2,3,4,5,6,7,8,9];
      var start = async function(){
      //在这里使用起来就像同步代码那样直观
        console.log('start');
        for(let i=0;i<10;i++){
          await sleep(3000);
          console.log('当前是第${i}次等待、。。');
        }
        console.log('end');
      }

    /*箭头函数 防止this转移*/
      let func = () => 'hello';
      console.log(func());


      let cheng = (a=3) => a*a;
      console.log(cheng(9));


      let add = (a,b) => a+b;
      console.log(add(3,3));

      let add1 = (a,b) =>{
        console.log(a+b);
        return a+b;
      }
      console.log(add1(3,9));

  • 相关阅读:
    Duilib 控件类html富文本绘制
    再谈如何使用Taglist?
    如何让vim自动显示函数声明-使用 echofunc.vim插件
    vim 标签页 tabnew 等的操作命令
    php数组操作集锦- 掌握了数组操作, 也就掌握了php
    php字符串操作集锦
    thinkphp疑难解决4
    如何保存gnome的linux的 会话?相当于windows下的休眠?
    开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux
    如何更改gnome-screenshot的默认的保存路径?
  • 原文地址:https://www.cnblogs.com/xianxianxxx/p/8193624.html
Copyright © 2011-2022 走看看