"之间的差异无法读取属性"而且无法获得财产?

时间:2017-01-25 15:13:21

标签: javascript azure

在JS中,"之间的区别是什么?无法读取未定义的属性X"并且"无法获得未定义的属性X"?

我在Azure中部署的应用上收到了这两个不同的错误消息,只是注意到消息中的差异。为什么有两个不同的错误消息可能存在相同的错误?错误的起源是不一样的?它与不同的库,JS版本或操作系统有关吗?

1 个答案:

答案 0 :(得分:1)

他们的意思相同,只是不同的措辞。这意味着你做过类似的事情:

console.log(a.X);

...其中a的值为undefined

var a = undefined;
try {
  console.log(a.X);
} catch (e) {
  console.error(e.message);
}

首先是Google的JS引擎V8使用的措辞,该引擎用于Chrome,Chromium和NodeJS等:

https://github.com/v8/v8/blob/6eba6b4b89db81bc359dc041c62d1277f24bb8d4/src/messages.h#L334

第二个来自微软的引擎Chakra,它被IE和Edge使用。

https://github.com/Microsoft/ChakraCore/blob/58a7226c8eeb3993be19911d2711c147570eb3c2/lib/Parser/rterrors.h#L162