在JS中,「無法讀取未定義的屬性X」和「無法獲取未定義的屬性X」之間有什麼區別?「無法讀取屬性」並且無法獲取屬性之間的區別?
我在Azure中部署的應用程序中收到了這兩個不同的錯誤消息,並且只注意到消息中的差異。爲什麼會有兩個不同的錯誤消息可能出現相同的錯誤?錯誤的起源不一樣嗎?它與不同的庫,JS版本或操作系統有關嗎?
在JS中,「無法讀取未定義的屬性X」和「無法獲取未定義的屬性X」之間有什麼區別?「無法讀取屬性」並且無法獲取屬性之間的區別?
我在Azure中部署的應用程序中收到了這兩個不同的錯誤消息,並且只注意到消息中的差異。爲什麼會有兩個不同的錯誤消息可能出現相同的錯誤?錯誤的起源不一樣嗎?它與不同的庫,JS版本或操作系統有關嗎?
他們的意思是一樣的,它只是不同的措辭。這意味着你做一樣的東西:
console.log(a.X);
...其中a
的值爲undefined
:
var a = undefined;
try {
console.log(a.X);
} catch (e) {
console.error(e.message);
}
首先是從谷歌的JS引擎所使用的措辭,V8,用於Chrome,Chromium和NodeJS等:
https://github.com/v8/v8/blob/6eba6b4b89db81bc359dc041c62d1277f24bb8d4/src/messages.h#L334
第二個來自微軟的引擎Chakra,它被IE和Edge使用。
我的錯誤,我相信我*有*見過它,我從來沒有注意到它。 :-) –
什麼是生成這些錯誤的代碼? – Antony
第一個是使用V8 JavaScript引擎(用於Chrome,Chromium和NodeJS;不同的引擎有不同的措辭)的措辭的相當標準的錯誤消息。我從來沒有見過第二個。 –
Chakra使用第二個。 https://github.com/Microsoft/ChakraCore/search?utf8=%E2%9C%93&q=%22unable+to+get+property%22&type=Code –