读《JavaScript百炼成仙》感悟 记五

153 阅读2分钟

本篇主要讲述了关于es6和往后的一些新的语法和api

新声明语法

  1. let 用于块级作用域内的变量声明
  2. const 用于声明常量,常量声明后不能被改变

解构赋值

  1. let { a, b } = abObj 从对象中快速通过属性名获取这个属性并赋值给新变量
  2. let a = [...b] 数组的结构赋值,用于复制数组
  3. let a = [...b, ...c] 数组的合并,也是通过结构赋值快速实现

补位api

  1. padStart(x,'0') 返回新的字符串,表示用0从字符串头部补充到x个字数
  2. padEnd(x, '0') 返回新的字符串,表示用0从字符串尾部补充到x个字数

proxy代理

  • proxy(target, handler) target是被代理的对象,handler是声明了各类代理操作的对象,最终返回一个代理对象,一般来说handler里面放的是setget方法,方法有target,key,val参数

数组

  1. Array.of() 将参数中所有值作为元素形成数组
  2. Array.from() 将类数组对象或可迭代对象转化为数组,类数组:let obj = {0:'k',1:'j',length:2};一定要带有length属性,from方法还有第二个参数map()可以处理传入的数组
  3. find() 返回通过测试(函数内判断)的数组的第一个元素的值,如果没有符合条件的元素返回 undefined
  4. findIndex() 返回传入一个测试条件(函数)符合条件的数组第一个元素位置,如果没有符合条件的元素返回 -1
  5. fill(value, start, end) 用于将一个固定值替换数组的startend的元素
  6. copyWithin(target, start, end) 用于从数组的指定位置拷贝元素到数组的另一个指定位置中
  7. entries() 返回一个数组的迭代对象,该对象包含数组的键值对 (key/value),迭代对象中数组的索引值作为 key, 数组元素作为 value
  8. keys() 用于从数组创建一个包含数组键的可迭代对象,如果对象是数组返回 true,否则返回 false
  9. values 用于从数组创建一个包含数组值的可迭代对象,如果对象是数组返回 true,否则返回 false

函数

  • () => {} 箭头函数,此时this的指向是定义函数时的对象,普通函数下的this是指向用用函数时的对象

对象

  • 如果想将对象的的属性名当做变量来用
 let key = 'a';
 let obj = {
     [key]: 'b'
 }

Promise

  1. new Promise((resolve, reject) =>{}).then(() => {}).catch(() => {}) 使用promise来处理请求或者是异步事件,写起来和ajax很像,将异步事件写在大括号里面,成功返回处将resolve()写入,反之同理
  2. 可以使用asyncawait处理Promise
    let fun = () => {
        return new Promise((res,rej) => {})
    }
    async function a() {
        let b = await fun();
    }
    a();