新的概念与方法
概略图:
ECMA2019
基本使用
字符串扩展
- trimStart() 消除字符串行首空格
var str = " abc";
var resStr = str.trimStart();
console.log(resStr,resStr.length); //abc 3
- trimEnd() 消除字符串行尾空格
var str = "xyz ";
var resStr = str.trimEnd();
console.log(resStr,resStr.length); //xyz 3
对象扩展
- Object.fromEntries(); 从Array Iterator 反向获取对象
Object.entries()
entries() 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)
Object.fromEntries()
是对entries方法迭代对象的逆向操作,返回原始对象
var obj = {"a":1,"b":2};
var objEntries = Object.entries(obj);
console.log(objEntries); //[["a", 1],["b", 2]];
var returnObj = Object.fromEntries(objEntries);
console.log(returnObj); //{a: 1, b: 2}
数组扩展
- Array.flat([depth]); 将多维数组转化为一维数组,参数为扁平化的深度,若选择无限层级,则设置为Infinity
var arr = [1,2,3,[4,5,[6,7]]];
var resArr = arr.flat(Infinity);
console.log(resArr); //(7) [1, 2, 3, 4, 5, 6, 7]
- Array.flatMap(); 扁平化一维数组,参数为一个函数,类似map操作,但是附带一个一维的flat
···
var arr = [1,2,3,[4,5,[6,7]]];
var resArr = arr.flatMap(x=>x);
console.log(resArr); //[1,2,3,4,5,[6,7]];
···
symbol 扩展 description
description 是一个只读属性,它会返回 Symbol 对象的可选描述的字符串。
Symbol('desc').toString(); // "Symbol(desc)"
Symbol('desc').description; // "desc"
Symbol('').description; // ""
Symbol().description; // undefined
// global symbols
Symbol.for('foo').description; // "foo"
网友评论