我不是一個誰已經做了很多的JavaScript。我的背景是Java/C++。我目前正在研究一個使用很多javascript的項目,但是我發現了一些對我沒有意義的東西,但是希望有一些JavaScript專家可以給我一個很好的邏輯解釋。Javascript未定義,空字符串,如果語句
var noDefinition = undefined;
var emptyString = "";
var noDefinitionAndEmptyString = noDefinition + emptyString;
console.log("NoDefinition");
console.log(noDefinition);
console.log("EmptyString");
console.log(emptyString);
console.log("noDefinition+emptyString");
console.log(noDefinitionAndEmptyString);
console.log("************************");
if(noDefinition == undefined)
{
console.log("No Definition is undefined");
}
if(emptyString == undefined)
{
console.log("emptyString is undefined");
}
if(noDefinitionAndEmptyString == undefined)
{
console.log("noDefiniton and emptyString is undefined");
}
上面代碼在我的控制檯的結果如下:
[INFO] NoDefinition
[INFO]
[INFO] EmptyString
[INFO]
[INFO] noDefinition + emptyString
[INFO] undefined
[INFO] * ** * ** * ** * **
[INFO]沒有定義未定義
因此,大家可以看到我的輸出變量noDefinition和emptyString到控制檯,它產生的空白輸出。當我連接它們時,控制檯將產生未定義的。但是,如果我繼續使用if語句並將它們中的每一個與未定義的比較。唯一的執行是第一個。
即使放到控制檯時,也會出現這種情況,只是顯示爲空白。此外,在控制檯中顯示爲未定義的串聯未能與未定義的並且從不執行的比較失敗。我對此感到困惑,我希望在那裏可以給我一個關於發生的事情的解釋。
可能重複(HTTP://堆棧overflow.com/questions/776950/javascript-undefined-undefined) – 2012-03-01 18:59:48