for循环、Javascript中的多个变量

for循环、Javascript中的多个变量,javascript,for-loop,Javascript,For Loop,我不明白这个代码是怎么工作的。有人能给我指出正确的使用方法吗?和:在for循环中?它们是什么意思 var range = function(start, end, step) { var arr = []; for (var i = start; step > 1 || step === undefined ? i <= end : i >= end; step ? i = i + step : i++) { arr.push(i); }

我不明白这个代码是怎么工作的。有人能给我指出正确的使用方法吗?和:在for循环中?它们是什么意思

var range = function(start, end, step) {
    var arr = [];
    for (var i = start; step > 1 || step === undefined ? i <= end : i >= end; step ? i = i + step : i++) {
        arr.push(i);
    }
    return arr;
};

对于循环,这没有什么特别的?是

第二次使用?运算符更为棘手,因为它将i的内容作为副作用进行操作。这段代码的作者计算变量step。如果这是真的,i将逐步推进,否则它将递增。

这正是正确的

它几乎是if-else语句的简写,即:

return (boolean expression) ? ifTrue : ifFalse;
同:

if (boolean expression) {
    return ifTrue;
} else {
    return ifFalse;
}
所以在你的for循环中

step === undefined ? i <= end : i >= end
指:

如果步骤未定义 通常看起来像i所以据我所知,我可以用三元运算符作为if语句的简写?最好使用速记属性,还是只使用if..else?@Punkdog,这取决于;使用运算符,用于表达式分配变量等。如果for语句运行此代码块或其他代码块,则不返回值。
if (boolean expression) {
    return ifTrue;
} else {
    return ifFalse;
}
step === undefined ? i <= end : i >= end