0
我的Javascript函數有問題,我不理解某些內容,只是尋求一些清晰度。我的JavaScript函數邏輯有什麼問題?
我有一個函數:
function Test (array) {
if (array === []) {
return "the array is empty";
} else {
return array;
}
當我把這個函數傳遞一個空數組,它返回空數組,完全跳過我的if語句的第一部分(這是我不理解的部分,爲什麼它跳過那部分?我的理解是,它會返回我的字符串語句,因爲我傳遞它的數組實際上是空的。如果刪除else語句,它將返回「undefined」。注意:我知道解決這個問題的方法是設置我的「if」語句來比較我傳遞的數組長度。
例如:
function Test (array) {
if (array.length === 0) {
return "the array is empty";
} else {
return array;
}
我只是還沒有理解爲什麼第一個不能正常工作,並且會很感激的解釋。
'if(array === []){'永遠不會是真的。但是'if(array.length === 0)'對於一個空數組是真的。 –
你不能比較兩個數組。兩者都有不同的地址。數組不是不可變的對象。他們只是參考。 –
注意:您從不關閉else:'}' – R3tep