2016-08-03 35 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

所以它与上下文有关吗?在平等的情况下,它并不是虚假的,而是处于一种状态。 –

相关问题