对象方法扩展:
//Object.is 比较两个值是否严格相等,与『===』行为基本一致(+0 与 NaN)但是在判断NaN方面不太一样; <br />** //Object.assign 对象合并1. 将源对象的所有可枚举属性,复制到目标对象;(多用于/配置信息)**<br />**//合并对象2. const person = {...per1,...per2,...per3,...per4}//(per分别为对象名)**<br /> //proto、setPrototypeOf、 setPrototypeOf 可以直接设置对象的原型;<br /> //Object.key()返回一个给定对象的所有可枚举属性的属性名 <br /> //Object.values()返回一个给定对象的所有可枚举属性值的数组; <br /> **//Object.entries()返回一个给定对象自身可遍历属性 [key,value] 的数组;(将对象转成二维数组,可以直接放入Map里,通过Map属性操作**)<br /> //**Object.fromEntries() 执行与 Object.entries互逆的操作。Object.fromEntries() 方法把键值对列表转换为一个对象。(列表二维数组并且内部数组以键值对的形式存放 **_**const **_**array= [[1,2],[3,4],[5,6]]) ** <br /> //Object.getOwnPropertyDescriptors()返回指定对象所有自身属性的描述对象(为新对象进行相同配置的克隆,);<br /> //rest对象应用:
javaScript遍历对象总结
1、使用Object.keys()遍历
返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).
var obj = {‘0’:’a’,’1’:’b’,’2’:’c’}; Object.keys(obj).forEach(function(key){ console.log(key,obj[key]); });

2、使用for..in..遍历
循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).<br /><br />var obj = {'0':'a','1':'b','2':'c'}; for(var i in obj) { console.log(i,":",obj[i]); } <br />

3、使用Object.getOwnPropertyNames(obj)遍历 返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).
var obj = {‘0’:’a’,’1’:’b’,’2’:’c’}; Object.getOwnPropertyNames(obj).forEach(function(key){ console.log(key,obj[key]); });

4、使用Reflect.ownKeys(obj)遍历 返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举. 
var obj = {‘0’:’a’,’1’:’b’,’2’:’c’}; Reflect.ownKeys(obj).forEach(function(key){ console.log(key,obj[key]); });
数值扩展:
//Number.EPSILON:(可以用来精确 浮点数的运算)
Number.EPSILON 是 JavaScript 表示的最小精度;
EPSILON 属性的值接近于 2.2204460492503130808472633361816E-16;
//二进制和八进制:
ES6 提供了二进制和八进制数值的新的写法,分别用前缀 0b 和 0o 表示;
//Number.isFinite()检测一个值是否为有限数
//Number.isNaN()检测一个数是否为NAN
//Number.parseInt Number.parseFloat字符串转数
//Number.isInteger 判断一个数是否为整数
//Math.trunc 将数字的小数部分抹掉
//Math.sign 判断一个数到底为正数 负数 还是零
//进行指数操作符 幂运算的简化写法,例如:2的10次方:210
字符串方法扩展:
//trimStart()和 trimEnd()去掉字符串前后的空白字符
数组方法扩展:
set集合可以为数组去重,也可以用其中的has()方法查找数组中的元素
[…]扩展运算符 将数组转化成以逗号分隔的参数序列
作用:1.数组的拼接 2.数组的克隆 3.将伪数组转成真正的数组
//Array.includes 判断数组中是否包含某元素
//arr.flat()将多维数组转换成低维数组,返回一个新数组,对原数据没有影响。参数为数组的深度,将3维变成1维,深度为2。
//arr.flatMap()将arr.map()中返回的结果如果是数组,那么将map的二维数组变成一维数组。arr3.flatMap(items => [items*10])
正则扩展:
//反向断言 /\d+(?=啦)/ 匹配啦字前面的数字 reg.exec(str)<br /> //正向断言 /(?<=么)\d+/ 匹配么字后面的数字 reg.exec(str)<br /> //扩展命名捕获分组 reg =/<a href="(?<url>.*)">(?<name>.*)<\/a>/ 拿到网址和网站名 (?<url>.*)给定别名<br /><br />//dotAll模式:dot 元字符 . 除了换行符意外的任意单个字符(提取HTML数据时作用很明显)<br /><br />//matchAll:可以对页面数据进行批量提取(本身实现了迭代器接口 可以用for of和扩展运算符)<br />
Symbol扩展:
Symbol.description会返回symbol类型的描述字符串

