課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
這里obj.y.z什么意思,學(xué)JAVA沒見過這么調(diào)用屬性的,另外為什么上面var yz=obj.y.z不成立
下面的卻可以成立,什么原因?
2016-01-05
源自:JavaScript深入淺出 4-3
正在回答
其實(shí)這里是obj里有y這個(gè)屬性,這個(gè)y屬性是一個(gè)對象,里面還有屬性z,所以。。。
你好,老師講的很清楚了,這里的?obj.y.z 的意思是在obj對象里找到 y ,再在 y 里找到 z ,報(bào)錯(cuò)的原因是 obj 里沒有 y ,更談不上 y 里有沒有 z 了,所以 obj.y 和 obj.y.z 都會報(bào)錯(cuò);下面是做了一個(gè)判斷 if(obj.y); 如果obj.y 成立,執(zhí)行里面的操作,還有 var yz = obj && obj.y && obj.y.z; 根據(jù)&&的運(yùn)行規(guī)則,是從左向右執(zhí)行的,如果有一個(gè)不符合則不再繼續(xù)執(zhí)行,這里從左向右執(zhí)行,依次是 obj,如果obj不存在,則返回false,如果存在繼續(xù)執(zhí)行 obj.y ,如果 obj.y 不存在,返回false,如果存在,則繼續(xù)向右執(zhí)行 obj.y.z,如果 obj.y.z 不存在,返回false ,如果 obj.y.z?存在則全部符合,執(zhí)行下面的語句,這個(gè) var?yz = obj && obj.y && obj.y.z; 相當(dāng)于obj.y 一樣,只是一個(gè)判斷,只不過判斷的更加嚴(yán)謹(jǐn)。
望樓主采納!
慕斯卡4106679 提問者
慕萊塢9220042 回復(fù) 慕斯卡4106679 提問者
鍵值對形式像json一樣,例如:var obj={x:1},那么obj.x=1;
如果 var obj={y:{z:1}},那么obj.y.z=1;外層可以嵌套。
因?yàn)閛bj.y是 undefined,說明obj.y沒有被定義。所以也就不存在下面的屬性。
下面加了判斷,如果obj.y被定義了。才執(zhí)行if里面的主體。所以不會報(bào)錯(cuò)。
舉報(bào)
由淺入深學(xué)習(xí)JS語言特性,且解析JS常見誤區(qū),從入門到掌握
1 回答屬性讀寫的問題
2 回答對象屬性問題
2 回答屬性刪除問題
1 回答關(guān)于arguments屬性的問題
3 回答自身屬性和原型屬性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-01-05
其實(shí)這里是obj里有y這個(gè)屬性,這個(gè)y屬性是一個(gè)對象,里面還有屬性z,所以。。。
2016-01-05
你好,老師講的很清楚了,這里的?obj.y.z 的意思是在obj對象里找到 y ,再在 y 里找到 z ,報(bào)錯(cuò)的原因是 obj 里沒有 y ,更談不上 y 里有沒有 z 了,所以 obj.y 和 obj.y.z 都會報(bào)錯(cuò);下面是做了一個(gè)判斷 if(obj.y); 如果obj.y 成立,執(zhí)行里面的操作,還有 var yz = obj && obj.y && obj.y.z; 根據(jù)&&的運(yùn)行規(guī)則,是從左向右執(zhí)行的,如果有一個(gè)不符合則不再繼續(xù)執(zhí)行,這里從左向右執(zhí)行,依次是 obj,如果obj不存在,則返回false,如果存在繼續(xù)執(zhí)行 obj.y ,如果 obj.y 不存在,返回false,如果存在,則繼續(xù)向右執(zhí)行 obj.y.z,如果 obj.y.z 不存在,返回false ,如果 obj.y.z?存在則全部符合,執(zhí)行下面的語句,這個(gè) var?yz = obj && obj.y && obj.y.z; 相當(dāng)于obj.y 一樣,只是一個(gè)判斷,只不過判斷的更加嚴(yán)謹(jǐn)。
望樓主采納!
2016-01-05
鍵值對形式像json一樣,例如:var obj={x:1},那么obj.x=1;
如果 var obj={y:{z:1}},那么obj.y.z=1;外層可以嵌套。
因?yàn)閛bj.y是 undefined,說明obj.y沒有被定義。所以也就不存在下面的屬性。
下面加了判斷,如果obj.y被定義了。才執(zhí)行if里面的主體。所以不會報(bào)錯(cuò)。