Object.keys
Object.keys() 返回的数组顺序和与 for…in 循环提供的顺序相同。
Object.values() 返回的数组顺序也和与 for…in 循环提供的顺序相同。
for…in 遍历
根据现代 ECMAScript 规范的定义,遍历的顺序是一致且可预测的。在原型链的每个组件中,所有非负整数键(可以作为数组索引)将首先按值升序遍历,然后是其他字符串键按属性创建的先后顺序升序遍历。
区别
for in会遍历原型链上的属性Object.keys不会
共同点(重要
遍历先判断key是否是非负整数,如果是,则按照升序排列取出,其余字段按照创建的先后顺序取出来
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for…in