精選分類 書庫 完本 排行 原創專區
特殊小說 > 其他 > Javascript百鍊成仙 > 第10章

Javascript百鍊成仙 第10章

作者:葉小凡 分類:其他 更新時間:2022-11-24 14:40:05

“既然你現在已經知道瞭如何使用for循環,那麼現在我就來教你如何用這個技術遍曆一個對象。”何老說道。

“對象裡麵無非就是屬性和函數,你的意思是給我一個對象,想辦法獲取它裡麵所有的數據(鍵值對)嗎?”

“冇錯,假設有這樣的一個場景:我需要判斷一個對象中哪些東西是屬性,哪些東西是函數。這就需要我依次獲取這個對象裡麵的所有東西,然後判斷誰是屬性、誰是函數。”

“等等,就算拿到了這些東西,怎麼才能判斷誰是屬性、誰是函數啊?我好像還冇有這方麵的法術。”

“不用擔心,這個很簡單,你隻需要用一個typeof關鍵字就可以了。

比如,我現在有一個字串和一個函數。”說著,何老寫出瞭如下代碼。

var a ="123";

var fun =function(){

“然後,用typeof關鍵字包裹一下,再輸出看看。”

console.log( typeof(a) );

console.log( typeof(fun) );

運行結果:

string

function

“看到了吧,這樣就可以得到變量的類型了。a是一個字串,所以typeof出來就是string;

fun是一個函數,所以typeof出來就是function。接下來,我來跟你說說如何遍曆一個對象。

首先,新建一個簡單的JavaScript對象。

var yeXiaoFan = {

name : "葉小凡",

age:16,

eat:function(){

console.log("KFC");

}

}

“然後使用for循環進行遍曆。”

for(var p in yeXiaoFan){

console.log(p);

}

“這個for循環和之前的寫法是不同的。其中,p是一個隨便取的名稱,代表yeXiaoFan對象中遍曆出來的屬性名稱。通過這種方法,我可以在事先不清楚對象有哪些屬性的情況下把屬性的名稱都獲取到。”何老緩緩地說道。

效果:

name

age

agt

“那麼除了屬性名稱,屬性的值也可以得到嗎?”葉小凡眨了兩下眼睛,好奇地問何老。

“屬性名稱都得到了,你還愁冇有屬性值嗎?”何老一吹鬍子,笑嗬嗬地反問。

“啊,我明白了,既然有了屬性名稱,那麼對象可以用點(.)的方式直接獲取屬性的值。當然,用中括號([])也是可以的。”

葉小凡恍然大悟。看到他如此表現,何老也不禁點了點頭。

“冇錯,是這樣的。我們隻需要把剛纔的代碼稍做修改就可以了。”說著,何老又打出一段代碼。

var yeXiaoFan = {

name : "葉小凡",

age:16,

eat:function(){

console.log("KFC");

}

}

for(var p in yeXiaoFan){

console.log(p “=” yeiXiaoFan[p]);

}

運行結果:

name=“葉小凡”

age=“16”

agt=function(){

console.log("KFC");

}

“成了,可是你剛纔為什麼不用點號?”葉小凡嘀咕道,可是轉念一想就明白了其中的緣由。

因為遍曆出來的屬性名稱是不確定的,而是用一個p變量指代,既然是變量,自然不可以用點號。

因為如果寫成yeXiaoFan.p,那麼就會被認為是尋找一個名字叫作p的屬性,然而事實上,p隻不過是一個變量的名稱而已。

換句話說,p隨便叫什麼都沒關係,反正它隻是一個變量的名稱罷了,真正重要的不是p變量叫什麼,而是p變量指代的內容是什麼。

“我看到你的表情就明白你已經懂了,冇錯,你的猜想是正確的。一旦遇到這種屬性名稱不確定的情況,就隻能用一個變量代替,換句話說,不能用點號,隻能用中括號。因此,當對象訪問屬性的時候,用中括號是更加靈活的。”

“那麼,我是不是應該時刻都用中括號,再也不用點號了?”

“那倒不一定,有些情況,或者說絕大多數情況還是用點號。因為大部分的情況下,你都是已經明確知道屬性的名字叫什麼了,那麼毫無疑問,用點號是更加方便的,你說是吧。”

葉小凡想了一會兒,然後點了點頭。

目錄
設置
設置
閱讀主題
字體風格
雅黑 宋體 楷書 卡通
字體風格
適中 偏大 超大
儲存設置
恢複默認
手機
手機閱讀
掃碼獲取鏈接,使用瀏覽器打開
書架同步,隨時隨地,手機閱讀
收藏
聽書
聽書
發聲
男聲 女生 逍遙 軟萌
語速
適中 超快
音量
適中
開始播放
推薦
反饋
章節報錯
當前章節
報錯內容
提交
加入收藏 < 上一章 章節列表 下一章 > 錯誤舉報