ECMA Script 2017 (ES8)新内容

新增对象方法

Object.values() 

let obj = { 0: 'a', 1: 'b', 2: 'c' };
Object.values(obj);  // <- 输出 ['a','b','c'];

/* 返回一个数组,其元素是在对象上找到的可枚举属性值 属性的顺序与通过手动循环对象的属性值所给出的顺序相同  */

Object.entries()

Object.entries(obj);  //  <- 输出 [['0':'a'],['1','b'],['2','c']]

/* 返回一个给定对象自身可枚举属性的键值对数组,
其排列与使用 for...in 循环遍历该对象时返回的顺序一致
区别在于 for-in 循环还会枚举原型链中的属性 */

可以将obj转换为map

var obj = { 0 : 'a' , 1: 22 };
var map = new Map(Object.entries(obj));
console.log(map); // Map { 0 : 'a' , 1: 22 };

Object.getOwnPropertyDescriptors()

Object.create(
    Object.getPrototypeOf(obj),
    Object.getOwnPropertyDescriptors(obj)
);

/*
    Object.getOwnPropertyDescriptors()
    所指定对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象 
    Object.assign() 方法只能拷贝源对象的可枚举的自身属性,
    同时拷贝时无法拷贝属性的特性们,而且访问器属性会被转换成数据属性,
    也无法拷贝源对象的原型,该方法配合 Object.create() 方法可以实现上面说的这些 
*/

新增的字符串方法

String.padStart(length,padString)     <- 在原字符串开头填充指定的填充字符串直到目标长度所形成的新字符串
    参数 length     
        当前字符串需要填充到的目标长度 如果这个数值小于当前字符串的长度,则返回当前字符串本身
    参数 padString(可选)    
        填充字符串 如果字符串太长,使填充后的字符串长度超过了目标长度,
        则只保留最左侧的部分,其他部分会被截断 
        此参数的默认值为 " "(U+0020) 

String.padEnd(length,padString)       <- 在原字符串末尾填充指定的填充字符串直到目标长度所形成的新字符串 
    参数说明同上

 

异步函数  async/await


 

  async function name([param[, param[, ... param]]]) { statements };
    name  <- 函数名称
    param   <- 要传递给函数的参数的名称 
    statements  <- 包含函数主体的表达式 可以使用await机制 

  await
  用法:
      [返回值] = await 表达式;
        await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成 
        若 Promise 正常处理(fulfilled),其回调的resolve函数参数作为 await 表达式的值,继续执行 async function 

AsyncFunction 构造函数
  AsyncFunction 构造函数用来创建新的 异步函数 对象,
  JavaScript 中每个异步函数都是  AsyncFunction 的对象 
  用法:
     

new AsyncFunction([arg1[, arg2[, ...argN]],] functionBody);


      arg1, arg2, ... argN
        函数的参数名,它们是符合 JavaScript 标示符规范的一个
        或多个用逗号隔开的字符串 例如 x、theValue、或 a,b 
      functionBody
        一段字符串形式的 JavaScript 语句,这些语句组成了新函数的定义 

      注意: AsyncFunction 并不是一个全局对象,需要通过下面的方法来获取:
       

Object.getPrototypeOf(async function(){}).constructor

  ※ 调用 AsyncFunction 构造函数时可以省略 new,其效果是一样的 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值