簡體   English   中英

Java中未捕獲的引用錯誤和未定義

[英]Uncaught Reference Error in Javascript & undefined

考慮:

var myString = new String("Hello world");
alert(myString.noSuchValue); // undefined

alert(myshit);  // This results in error, and not the above one

他們兩個,即

  • 對象myString屬性noSuchValue
  • 可變的myshit

沒有定義

但是,為什么我會因myshit而不是對象屬性的情況出錯

在此處輸入圖片說明

考慮對您的代碼進行一些修改:

var myString = "Hello world";
var noSuchValue = myString.noSuchValue;
alert(noSuchValue);

在此示例中, noSuchValue是值為undefined定義變量

與此相比:

alert(otherValue);

在這里, otherValue是一個未定義的變量 (即尚未使用var聲明的值),沒有任何值。

JavaScript可以很好地處理值等於undefined變量,但是當看到未定義的變量時,它將引發異常。

您可以從ECMAScript規范中獲得正確的答案,但在以下示例中將對其進行總結:

var data= myObj.prop1;

預期的行為是:

  • 如果myObj(基本引用)不存在,則引發ReferenceError。
  • 如果基存在,但屬性不存在,則返回undefined

可能是因為您可以引用不存在的成員將其分配給現有對象,例如

var myObject = {firstMember: "test1"};
myObject.secondMember = "test2";

賦值左側的值是有意義的表達是有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM