1.for…in…

遍历对象,还会得到对象原型链上的属性,k可以通过hasOwnProperty()方法过滤原型链上的属性

2.Object.keys()

返回对象自身属性组成的数组,自动过滤了原型链上的属性,可以通过forEach来遍历

3.Object.getOwnPropertyNames()

返回自身属性组成的数组,包括不可枚举的属性,可以通过forEach遍历

4)Reflect.ownKeys()

返回对象自身所有属性组成的数组,包括不可枚举属性和Symbol属性