json也就是javascript object notation,是一個描述資料的輕量級文法。json的優雅是因為它是javascript語言的一個子集。json和xml都使用結構化方法描述資料
json有結構化的嵌套資料元素,每個json文檔描述了這樣一個對象,該對象包含有:嵌套對象、數組、字元串、數字、布爾值或空值。
第一種:
第二種:
第三種:對象字面量表達式
1,shift()方法
shift:删除原數組第一項,并傳回删除元素的值;如果數組為空則傳回undefined
2,pop()方法
pop:删除原數組最後一項,并傳回删除元素的值;如果數組為空則傳回undefined
前面的方法隻能操作數組開頭和結尾,無法操作中間項,如果要操作中間的項,使用splice方法
3,splice方法
這個方法很強大,可以對數組任意項進行增加,删除,替換操作
1)修改操作:
第一個參數是準備操作的數組位置,第二個參數是操作位置後面的數組項數,第三個以後的就是被替換後的内容
2)删除操作:
3)添加操作:
js中删除對象元素用delete操作符
json資料如:
object本身就是無對象的集合,是以在用 for-in 語句周遊對象的屬性時,周遊出的屬性順序與對象定義時不同,是以在開發中應盡量避免編寫依賴對象屬性順序的代碼
正常情況下上面兩種周遊數組的方式結果一樣
差別:
1.标準的for循環中的i是number類型,表示的是數組的下标,但是forin循環中的i表示的是數組的key是string類型,因為js中一切皆為對象。自己試試 alert(typeof i)
2.現在我加上如下代碼,上面的執行結果就不一樣了
我們發現标準的for循環依然真正的對數組循環, 但是此時forin循環對我剛才寫的test方法列印出來了。這就是for與forin周遊數組的最大差別,如果我們在項目采用的是用forin周遊數組,假設有一天誰不小心自己為了擴充js原生的array類,或者引入一個外部的js架構也擴充了原生array。那問題就來了
再此建議兩點
1.不要用for in周遊數組,全部統一采用标準的for循環變量數組(我們無法保證我們引入的js是否會采用prototype擴充原生的array)
2.如果要對js的原生類擴充的時候,不要采用prototype了
直接在js裡建立json資料
json對象沒有length屬性,是以周遊的話要:
記住一定要分辨好json的對象和數組~不然就一直是undenfined
js不能直接周遊map,但是可以周遊json對象,是以先将map轉為json資料,再由js去解析周遊json對象,就達到了間接周遊map的目的