1、基本数据类型自带的原型属性不可枚举
2、通过Object.defineProperty()方法指定的enumerable为false的属性不可枚举
Object.keys()返回属性key,但不包括不可枚举的属性
Reflect.ownKeys()返回所有属性key
他们两个都不能遍历原型上的属性
for in
for in一般用于遍历对象的属性;
作用于数组的for in除了会遍历数组元素外,还会遍历自定义可枚举的属性,以及原型链上可枚举的属性;
作用于数组的for in的遍历结果是数组的索引,且都为字符串型,不能用于运算;
某些情况下,可能按照随机顺序遍历数组元素;
for of
ES6中添加的循环语法;
for of支持遍历数组、类对象(例如DOM NodeList对象)、字符串、Map对象、Set对象;
for of不支持遍历普通对象,可通过与Object.keys()搭配使用遍历;
for of遍历后的输出结果为数组元素的值;
跨语言的对象,是不能这样的传递。nodejs传一个 字符串(json格式,或者xml) 给java,java端 把这个字符串 解析成 你所需要的枚举类型,然后再调用java方法。 如果nodejs的枚举对象 和 java对象的枚举对象可以通用,那为什么还需要 nodejs和java两种语言。