对象展开之后顺序发生变化,什么原因啊?
javascript里面的对象属于哈希表,他key的顺序没有实际意义(也可将其当作数组使用,只不过性能会略低一些),在输出时会将对象的key分为两种一种是数字类型,一种是字符串类型,数字类型从小到大输出(数字类型的key在满足一定条件下会单独存在一个数组中),字符串类型会按照插入顺序输出
展开后key的顺序变了,因该是浏览器会将字符串类型的key按照字典序排了下顺序
console.log('桥'.charCodeAt(0))
console.log('梅'.charCodeAt(0))
console.log('西'.charCodeAt(0))
/*
26725
26757
35199
*/
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
首先对象属性是无序的,console展开会按照A-z,0-9,(中文不知道啥顺序)的顺序排列展示,纯粹是给人看着方便,不会改变原数据解构的顺序。