💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] >[success] # 自有属性的枚举顺序 ~~~ 1. '什么是枚举'?js的对象都有一个'属性',可枚举属性为'true'的对象属性,在使用'for in'遍历对象时, 可以遍历到该'属性',如果为'false',则在遍历时看不到对象的该'属性'。 ~~~ ~~~ 2. 'ES5'是没有'枚举顺序'这一说的,但是在'ES6'增加了'枚举顺序' 自有属性枚举时基本顺序如下: 1. 所有的数字类型键,按升序排列。 2. 所有的字符串类型键,按被添加到对象的顺序排列。 3. 所有的符号类型(详见第六章)键,也按添加顺序排列。 ~~~ 在`for in`时会有顺序,例子如下: ~~~ let obj = { a: 1, 0: 1, c: 1, 2: 1, b: 1, 1: 1 } for (key in obj) { console.log(key) // 0 1 2 3 a b c } ~~~ <br/> >[warning] ## 注意 ~~~ 'for-in循环'的'枚举顺序'仍未被明确规定,因为并非所有的'JS'引擎都采用相同的方式。 而'Object.keys()'和'JSON.stringify()'也使用了与'for-in'一样的'枚举顺序'。 ~~~