2016-08-03 36 views
0

我有下面的代碼:第二個條件與空值

function listToArray(list) { 
    var array = []; 
    for(var node = list; node; node = node.rest) { 
     console.log(node.rest); 
     array.push(node.value); 
    } 

    return array; 
} 

例如: - 像[1, 2, 3]數組看起來以列表的形式這樣{ value: 1, rest: { value: 2, rest: { value: 3, rest: null }}}

函數中for循環的條件最終將導致null。我的問題是,這個有條件的工作如何?通常你會有一個布爾表達式,例如:i <= 10。 AFAIK,null沒有評估到一個虛假的價值......那麼,有條件的工作如何?

+4

'null' *爲* falsey在JavaScript中JS – alex

+0

Falsy值:'FALSE','0',空字符串,'null','undefined','NaN'。 – Barmar

+0

爲什麼標題說**第二**有條件?代碼中只有一個條件。 – Barmar

回答

1

for循環中的條件是在每次迭代中計算的表達式。如果計算結果爲true,則執行語句。因爲null,0等。被算作假,它不執行。

來源: - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for

+0

對。但是你不能用'''== false'來看'null == false'。 –

+0

在條件下,空值被視爲false.Here in null == false,你檢查是否null == false不是,null和false是不同的東西 –

+0

所以它與上下文有關嗎?在平等的情況下,它並不是虛假的,而是處於一種狀態。 –

相關問題