獲取JavaScript對象的鍵值對兩種方法的不同之處


JavaScript 的對象是一種無序的集合數據類型,是由鍵值對組成的,與Python字典有一定相似性。不過javascript的鍵要求必須是字符串,而值可以是其他類型,甚至鍵必須是唯一的,因為當鍵不唯一時,后面的鍵會覆蓋前面的鍵。

 

1 var max = {  
2            'birth-month':'January',  
3            'birth-month':1}  
4 alert(max['birth-month']);  

 

 

彈出的對話框顯示1,而不是January.

 

既然鍵是字符串,我們可以用加引號來聲明鍵,如'name',而官方也給出了我們不加引號也聲明的例子,如age,這兩種聲明有什么不同呢?

 1 var max = {'name':'marxwolf',  
 2             age:18,  
 3            'birth-month':'January',  
 4            'birth-month':18}  
 5 alert(max.name);  
 6 alert(max['name']);  
 7 alert(max.age);  
 8 alert(max['age']);  
 9 //alert(max.birth-month);  
10 alert(max['birth-month']);  

 

如果鍵的聲明是一個有效的變量名,我們可以加引號,也可以不加引號,也就是說這兩種情況是等價的,我們可以用max.name索引,也可以用max['name']索引,這兩種情況完全是等價的。

 

但是如果鍵的聲明不是一個有效的變量名,比如說birth-month,加入了中划線,就必須加引號,不然會產生語法錯誤,而這種情況下的調用,也必須是max['birth-month']這種方式。
但是,我又發現當在循環中調用的時候,好像只能用max[key]這種形式,而max.key這種形式會報錯,max[key]這種形式key可以是一個變量,也可以是一個定值,但如果是定值的話要加引號(單雙都行),max.key這種形式key只能是定值且不用加引號。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM