es7-8整理

es7-8整理_第1张图片
console.png

es7

  1. includes()

验证数组中是否存在某个元素,也能检测出数组中NaN

const a = [1, 2, 3, 4];
a.includes(1) // true;

[NaN, 1].includes(NaN) // true; 
[NaN, 1].indexOf(NaN) // -1
  1. 使用指数运算符**
console.log(2**3) // 8;

es8

  1. Object.values()

返回一个由对象属性值组成的数组。

const obj = {
  a: 1,
  b: 2,
  c: 3
};
Object
  .values(obj)
  .forEach(value => {
    console.log(value);
  });

// 1 2 3
  1. Object.entries()

如果 JavaScript 数据结构具有键和值,条目是一个键值对,被编码为2元数组。

const obj = {a: 1, b: 2, c: 3};
const temp = Object.entries(obj);
console.log(temp)
// [['a', 1], ['b': 2], ['c': 3]];
  1. padStart() && padEnd()

padStart()是在字符串前使用 fillString 填充,直到字符串长度为 maxLength;
padEnd() 的工作方式与 padStart() 类似,但不是在字符串开始的地方插入重复的 fillString ,而是将其插入到字符串结束的地方;

'x'.padStart(5, 'ab')       
log: 
  'ababx'
'x'.padStart(4, 'ab')
log: 
  'abax'
'abcd'.padStart(2, '#') (如果接收字符串的长度大于等于 maxLength ,则返回原始字符串)
log:
  'abcd'
'x'.padStart(3) (如果省略了 fillString ,则使用一个单独空格字符串(”)代替)
log:
  '  x'

'x'.padEnd(5, 'ab')
log:
  'xabab'
'x'.padEnd(4, 'ab')
log:
  'xaba'
'abcd'.padEnd(2, '#')
log:
  'abcd'
'abc'.padEnd(10, '0123456789')
log:
  'abc0123456'
'x'.padEnd(3)
log:
  'x  '
  1. 函数参数列表和调用中尾部的逗号不会再触发错误警告
eg: 
function es8(var1, var2, var3,) {
  // ...
}
  1. Object.getOwnPropertyDescriptors

返回指定对象所有自身属性(非继承属性)的描述对象。(相当于Object.getOwnPropertyDescriptor的复数形式)

const aa = {
  a: 1,
  b: 2
}
console.log(Object.getOwnPropertyDescriptors(aa));
log:
  a: {value: 1, writable: true, enumerable: true, configurable: true}
  b: {value: 2, writable: true, enumerable: true, configurable: true}

你可能感兴趣的:(es7-8整理)