将ECMA-262语法扩展为JSON超集javascript
对ECMAScript进行了语法更改,容许catch中不写error捕获java
原写法git
try { // 尝试使用可能没法实现的Web功能 } catch (unused) { // 支持可能没法实现的web功能状况 }
之后能够这样写github
try { // do something } catch { // }
新增一个Symbol.prototype.description方法,是一个只读属性,它会返回 Symbol 对象的可选描述的字符串web
demochrome
console.log(Symbol('desc').description); // expected output: "desc" console.log(Symbol.iterator.description); // expected output: "Symbol.iterator" console.log(Symbol.for('foo').description); // expected output: "foo" console.log(Symbol('foo').description + 'bar'); // expected output: "foobar"
新增一个Function.prototype.toString方法,返回一个表示当前函数源代码的字符串api
1.语法数组
function.toString()
2.demo函数
const fun = (name) => { console.log(name) } fun.toString() // "(name) => { console.log(name) }"
新增Object.fromEntries属性,用于将键值对列表转换为对象
1.语法post
const newObject = Object.fromEntries(iterable);
iterable: 相似实现了可迭代协议 Array 或者 Map 或者其它对象的可迭代对象
2.demo
const newObject = Object.fromEntries([['a', 1], ['b', 2]]); // { a: 1, b: 2 } const map = new Map().set('a', 1).set('b', 2); const newObject1 = Object.fromEntries(map); // { a: 1, b: 2 }
防止JSON.stringify返回格式错误的Unicode字符串的提议
新增String.prototype.trimStart和String.prototype.trimEnd属性,移除空白字符,并返回一个新字符串
从一个字符串的开端删除空白字段,并返回一个新字符串
1.语法
str.trimStart();
2.demo
const str = ' 我愿是猪 '; const newStr = str.trimStart(); // '我愿是猪 '
从一个字符串的末端删除空白字段,并返回一个新字符串
1.语法
str.trimEnd();
2.demo
const str = ' 我愿是猪 '; const newStr = str.trimEnd(); // ' 我愿是猪'
新增Array.prototype.flat和Array.prototype.flatMap属性,对数组的内含数组进行展开操做并返回一个新数组
!参考资料方法会按照一个可指定的深度递归遍历数组,并将全部元素与遍历到的子数组中的元素合并为一个新数组返回
1.语法
const newArray = arr.flat(depth)
depth: 须要展开内层数组的层数,默认为1
2.demo
/** 默认参数: */ const array = [1, [2, [3]]]; const array1 = array.flat(); // [1, 2, [3]] /** 递归展平,直到数组再也不包含嵌套数组: */ const arrayInfinity = array.flat(Infinity); // [1, 2, 3] /** 此处等同于 */ const array2 = array.flat(2);
const array = [1, 2, , 3]; const arrayRemove = array.flat(); // [1, 2, 3]
方法相似与Array.prototype.map,可是会展开数组(只会展开一层)
1.语法
const new_array = arr.flatMap((currentValue, index, array) => { // 返回新数组的元素 })
currentValue: 数组中正在处理的当前元素
index: 正在处理元素的索引
array: 正在被处理素组
2.demo
const array = [1, 2, 3]; const new_array = array.flatMap(ele => [ele * 2]) // [2, 4, 6] const new_array2 = array.flatMap(ele => [[ele * 2]]) // [[2], [4], [6]]