ES10 bigInt

// Flat flatMap()

flat 拉平数组,去除空项
const arr = [1,2,3,[4,5]]
const arr1 = [1,2,3,[4,5,[6]]]
console.log(arr.flat())
console.log(arr1.flat(num))
console.log(arr1.flat(Infinity))

const arr1 = [1,2,3,4]

console.log(arr1.map(x=>[x2]))
console.log(arr1.flatMap(x=>[x
2]))

//Object.formEntries() => 对象自身可枚举属性 for…in

const map = new Map([“name”,”-灯”], [“address”,”bejing”]);
console.log(Object.formEntries(map))
console.log(Object.entries);Ide

String.prototype.matchAll 返回包含所有匹配正则表达式及分组捕获迭代器

const str = “yideng xuetang xuetang”;

const reg= /xue*/g

while(matches = reg.exec(str)!== null) {
console.log(${matches[0]}-${reg.lastIndex})
}

let matches2 = str.matchAll(reg)

const reg = /y(i)(deng(\d?))/g

// trimStart // trimEnd

// Symbol.prototype.description

const sym = Symbol(“描述”)
console.log(String(sym))
console.log(sym.description);

Catch 参数可以省略

// 之前

try {

} catch(e) {

}

try {

} catch{

}

行分割符和段分割符号

JSON.parse JSON是ECMAScript的一个子集

// 草案 解决一个问题

const json = ‘{“name”: “yideng”\nxuetang}’

console.log(json)

JSON.parse(json);

JSON.stringify()

字符U+D800 到 U+DFFF处理

U+2028 行分隔符 U+2029 段分割符

JSON.stringify(‘\UDEAD’);

Array.prototype.sort()

小于10 插入排序 快速排序 O<n^2>

新的v8 TimSort() n(nlogn)

const arr = [
{name: ‘w’, age:18}
{name: ‘d’, age:1}
{name: ‘yideng ‘, age:8}
{name: ‘x’, age:108}
{name: ‘j’, age:198}
]

arr.sort((a,b)=> a.age-b.age);

Function.string()

Object.prototype.toString();

function /1213/ foo /123/() {
}

console.log(foo.toString())

// BigInt  任意进度整数 第七种基本数据类型

2^53-1

let num = 1n;

// 标准化的globalThis 对象

const getGlobal = function () {
if(typeof self != “undefined) return self;
if(typeof window != “undefined) return window;
if(typeof gloabal != “unefined”) reutrn global;

throw new Error();
}

// 在任何属性中打印this
consolelog(globalThis)