ES6 day3

9) Promise
  对异步操作进行封装。
  状态:待定、成功、失败

  1) 构造函数
    let p = new Promise((resolve,reject)=>{
      
    })

  2) 静态方法
    Promise.xxx

  3) 实例方法
    Promise.prototype.xxx

  ajax  
    GET /carousel/findAll HTTP/1.1
    Authorization:XXWEREAWFEWAFAEW
10) Symbol
  函数,无法使用new来调用,每次执行都可以产生式一个唯一的值(基本数据类型),这个值用来作为属性名。
  let s1 = Symbol()
  let s2 = "name"
  let obj = {
    [s1]:"terry",    // 神秘的唯一值:"terry"
    [s2]:"tom" ,     // name:"terry"
    s3:"jacky"       // s3 :"jacky"
  }
  obj[s1]
  obj.name
  obj.s3
  1. Symbol() 函数
    用来产生唯一值
  2. Symbol(flag) 
    flag字符串,表示标识
  3. Symbol.for(flag)
  4. Object.getOwnPropertySymbols()
    可以获取某个对象中所有的symbol属性名
  5. 系统内置Symbol
    1) Symbol.hasInstance
      所有的构造函数都内置这么个方法,当instanceof的时候会调用
      let obj = {
        [ Symbol.hasInstance]:function(o){
          return false
        }
      }
      let o = {}
      {} instanceof obj;
    2) Symbol.iterator
      当迭代对象的时候会被调用 for-of
      for(let o of arr){}
11) 集合
  是对数组和对象的拓展
  1. Set
    不可以存放相同的值,不可以通过索引来访问。Set是一种特殊的map
    let arr = [1,2,3,4,5,1,2,3]
    let arr = ['terry','larry']
    1) 构造函数
      new Set()
    2) 原型
      Set.prototype.size
      Set.prototype.add()
      Set.prototype.delete()
      Set.prototype.clear()
      Set.prototype.keys()
      Set.prototype.values()
      Set.prototype.entries()
      Set.prototype.forEach()
  2. Map
    键值对,键可以为任意数据类型;
    Map可以提供额外的api

    购物车(家政)
      goods 
        id    name    price
        fbm = {1   北京方便面  2}
        kqs = {2   怡宝矿泉水  2.5}
      let shopcar = new Map();
      shopcar.set(1,1)
      shopcar.set(2,3)

    如何将一个对象转换为map?
    1) 构造函数
      let map = new Map([[],[]])

    2) 原型方法
12) 代理
  1. 对象 setter/getter
    let obj = {}    // 目标对象
    let proxy = new Proxy(obj, {    // 代理
      set(target,key,val){
        target[key] = val;
      },
      get(target,key){
        return target[key]
      }
    })
    proxy.name = 'terry'    // 面向代理使用
  2. 函数 apply
    let foo = function(msg){console.log(msg);}
    let proxy = new Proxy(foo, {
      apply(target,that,args){
        target.apply(that,args)
      }
    })
  3. 构造函数 constructor
    let Person = function(name){this.name = name}

    let proxy = new Proxy(Person,{
      constructor(target,args){
        return new target(...args)
      }
    })
时间戳转成年月日是一个非常常见的需求,在使用 JavaScript 进行开发时也经常会遇到。ES6 中提供的 Date 对象可以非常方便地实现时间戳转成年月日。 在 ES6 中,我们可以使用 Date 类型的 from(timestamp) 方法,将时间戳转换为 Date 类型的对象。基于该 Date 对象,我们可以使用 Date 类型的实例方法,如 getFullYear()、getMonth() 和 getDate(),便捷地获取年份、月份和日期。 下面是一个实现时间戳转成年月日的示例代码: ```javascript const timestamp = 1625681232000; // 时间戳 const date = new Date(timestamp); // 创建 Date 对象 const year = date.getFullYear(); // 获取年份 const month = date.getMonth() + 1; // 获取月份 const day = date.getDate(); // 获取日期 const formattedDate = `${year}-${month}-${day}`; // 格式化日期 console.log(formattedDate); // 输出:2021-7-7 ``` 在上述示例代码中,我们先定义一个时间戳变量,然后使用 new Date(timestamp) 创建了一个 Date 对象。接着,我们分别使用 getFullYear()、getMonth() 和 getDate() 实例方法获取了年份、月份和日期,并将其保存在对应的变量中。最后,我们使用 ES6 中的字符串模板,将年月日格式化成了指定的字符串格式。 通过上述示例,我们可以发现,ES6 中实现时间戳转成年月日非常简单,并且代码可读性也很好。因此,在实际开发中,我们可以大胆使用 ES6 提供的语法糖,提高开发效率和代码质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值