es6学习笔记 简单的学习整理

 {

      // var Obj = (function () {
      //    var _id = 0;
      //   return function obj() {
      //       this.id = _id++
      //    }
      //  })()
      // new Obj()//{id:0};
      // new Obj()//{id:1};
      // new Obj()//{id:2};
      //ES5中定义常量的写法
      // Object.defineProperty(window, 'person1', {
      //    value: '175cm',
      //    writable: false,//false是不能修改该属性的意思,不允许重新赋值
      // });
      // console.log(window.person);
      //ES6中常量的写法
      const Pi = '3.12';
      // Pi='aaa';//1.html:29 Uncaught TypeError: Assignment to constant variable.
      // console.table([1,2]);//打印出表格的东西 可以放数据的东西  最后罗列出来
      const callbacks = [];
      for (let i = 0; i <= 2; i++) {
         callbacks[i] = function () {
            return i * 2
         }

      }
      //  console.table([callbacks[0](),callbacks[1](),callbacks[2]()]);//
   }
   let a = [{ s: 1 }, { s: 1 }, { s: 1 }];
   let newA = a.filter((v) => v.code = 0);
   // console.log(a);//[{s:1,code: 0},{s:1,code: 0},{s:1,code: 0}]
   // console.log(newA);//[]
   let b = [1, 2, 3];
   let newB = b.map((v) => v + 1);
   // console.log(b);//[1, 2, 3]
   // console.log(newB);//[2, 3, 4]
   //函数参数求和es5
   function aFn() {
      // console.log(arguments);
      let abc = Array.prototype.slice.call(arguments);
      // console.log(abc);//[1,2]
   }
   aFn(1, 2);
   //函数参数求和es6
   {
      let nnn = [1, 22];
      let all = ['q', 'w', ...nnn];
      // console.log(all);//['q','w',1,22]
   }
   {
      // var Person = function () {
      //    var data = {
      //       name: 'es3',
      //       age: 15,
      //       sex: 'male'
      //    }
      //    this.get = function (key) {
      //       return data[key]
      //    }
      //    this.set = function (key, value) {
      //       if (key != 'sex') {
      //          return data[key] = value;
      //       }
      //    }
      // }
      // var person = new Person();
      // person.set("name", 'c-es3');
      // person.set("age",18);
      // person.set("sex",'女');
      // console.table([
      // person.get("name"),
      // person.get("age"),
      // person.get("sex"),
      // ])
      //es5方式  属性不让修改
      var Obj={
         name:'es5',
         age:14,
         sex:"male"
      }
      Object.defineProperty(Obj,'sex',{
         value:'male',
         writable:false,
      })
      Obj.sex='Objsex';
      // console.table(Obj);
     
   }
   //对象代理
   let Agent={
      name:'es6',
      age:14,
      sex:'male'
   }
   let AgentPerson=new Proxy(Agent,{
      get(target,key){
           return target[key]+"-aaa"
      },
      set(target,key,value){
          if(key!=='sex'){
            return target[key]=value+'-ccc';
          }
      }
   })
   AgentPerson.name='jjj-';//触发set方法、  jjj-nba 
   console.table(AgentPerson.name);//jjj--aaa  触发get方法 jjj+'-aaa'
   console.table(Agent.name);//jjj-  触发get方法 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值