javascript 中的json

摘要

写这篇主要是发现 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的思想,就错误的以为是一样的,还是有不少不同的。

posted @ 2018-03-11 11:36  空城夕  阅读(120)  评论(0编辑  收藏  举报