摘要
写这篇主要是发现 javascript 中 json 和我理解中java 语言的map 存储是不同的。
javascript 中 object
本质是 array, 存储进去的数据是堆栈,有顺序的概念, 都是新建了一个对象
const value = {a: 1, b:1};
const value1 = {b:1, a:1};
value === value1 // false
Object.keys(value) // [a, b]
Object.keys(value1) // [b, a]
value1.a === value.a // true
可以看出来value, value1 的key顺序是不同的,遍历出来也是不同的。javascript 6大类型,boolean, number, string, null, undefined 都是值, object是引用,上面的value value1 都是不同的地址,所以比较结果是false, 但是 value.a value1.a 指向的是number, 是值,所以比较结果是 true
java 中的 map
本质是存储地址
value = {a: 1, b:1};
value1 = {b:1, a:1};
value == value1 // true, 地址是相等的, 都是指向 { a:1, b:1 }这个变量
value.isEqual(value1) // false
遍历出来value , value1 的 key 顺序是一样的。
结语
一直以为javascript 是借鉴java的思想,就错误的以为是一样的,还是有不少不同的。