關於javsacript中 for in遍歷物件
阿新 • • 發佈:2019-01-10
1、關於for in語法
for ... in語法主要用於遍歷陣列中的元素,或者遍歷物件中的元素。 當使用for ... in 遍歷物件屬性時,原型鏈上的所有屬性都將被遍歷。2、關於Object屬性名
通常講,javascript標示符名稱必須由字母,下劃線(_)或dolor符號 ($)開始,其他字元可以時字母,數字,下劃線或dolor,但識別符號不能時javascript關鍵字。 對於物件屬性名,我實驗的結果是: 物件屬性名可以是1:下劃線開始的字串;2:陣列開始的字串;3:漢字;4:以上識別符號規定範圍內的字串。3、關於for in的一個坑
一般而言,我們使用for ... in迴圈遍歷陣列時,比如var arr = [1,2,3,4]; for (var k in arr){ alert(arr[k]) }
結果是依次彈出1、2、3、4。 同樣,我們自然的認為for ... in遍歷Object時也是按照屬性出現的順序來查詢。就像下 main的程式碼:
var o = {
'first':'first',
'second':'second',
'third':'third'
}
for (var k in o){
alert(o[k])
}
會依次彈出‘first’,‘second’,‘third’。 這當然沒錯,不過,再試試下面的程式碼:
var o = { '01':'1', '2':'2', '今天':3 } for (var k in o){ alert(o[k]) }
結果怎樣?2,1,3對不對? 這一次迴圈不是按照屬性出現的瞬息來查詢的。 這些程式碼在多種瀏覽器都出現一直都結果。我想大概時因為“Object是無序”來解釋。