課程
/前端開發
/JavaScript
/JavaScript深入淺出
老師您好!我用Node.js運行了一下您提到的“var yz=obj&&obj.y&&obj.y.z;”代碼和運行結果如下 沒有起到獲取obj.y.z的效果,是不是我哪里弄錯了
2016-08-06
源自:JavaScript深入淺出 4-3
正在回答
這樣子
var obj={x:1}
obj.y={z:3}
obj.y.z
這個問題的關鍵點在于若var y=2???
?y.z=3這個賦值語句過后y.z是否存在。
y.z實際驗證之后是不存在的為undefined,可能因為 y的值是基本數據類型 而非對象,
var obj2 = { ?
? ? ?x:1, ?
? ? ?y:2, ?
? ? ?o: { ?
? ? ? ? ?z:3, ?
? ? ? ? ?n:4 ?
? ? ?} ?
}; ?
這樣定義就可以了
我的理解是, 對于obj.y.z,如果y只是一個屬性的話,這種寫法本身就是錯誤的,y.z代表的是對象y里面的一個z屬性,所以y本身必須也是一個對象,這樣才會有意義啊~~
GISGOGOGO 提問者
試了一下 即使一開始將obj實例化為字符串 ?var obj = new Object("123aaa"); ?最終結果依然為undefined
舉報
由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握
4 回答請問 var obj = new Object; 和 var obj = new Object(); 的區別是什么?
2 回答var obj={x:1}之后var obj=new foo(); 那obj之前的x屬性不是沒有了嗎??
2 回答關于那個var obj=Object.create({x:1});
4 回答!function(){'use strict'; var obj={x:1,x:2};console.log(obj.x)}() 沒有報錯
2 回答為啥new完之后,再去訪問obj.y就是undefined呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-10-21
2019-02-13
var obj={x:1}
obj.y={z:3}
obj.y.z
2016-12-05
這個問題的關鍵點在于若var y=2???
?y.z=3這個賦值語句過后y.z是否存在。
y.z實際驗證之后是不存在的為undefined,可能因為 y的值是基本數據類型 而非對象,
2016-11-09
var obj2 = { ?
? ? ?x:1, ?
? ? ?y:2, ?
? ? ?o: { ?
? ? ? ? ?z:3, ?
? ? ? ? ?n:4 ?
? ? ?} ?
}; ?
這樣定義就可以了
2016-08-11
我的理解是, 對于obj.y.z,如果y只是一個屬性的話,這種寫法本身就是錯誤的,y.z代表的是對象y里面的一個z屬性,所以y本身必須也是一個對象,這樣才會有意義啊~~
2016-08-06
試了一下 即使一開始將obj實例化為字符串 ?var obj = new Object("123aaa"); ?最終結果依然為undefined