Javascript 练习eloqent java范围的和

Javascript 练习eloqent java范围的和,javascript,html,Javascript,Html,什么是 step = start < end ? 1 : -1 step=start

什么是

step = start < end ? 1 : -1
step=start
在这个函数中是什么意思?它来自《雄辩的Java》一书的答案,我不知道在函数值的上下文中问号和冒号是什么意思

功能范围(开始、结束、步骤=开始<结束?1:-1){
让数组=[];
如果(步骤>0){
对于(让i=start;i=end;i+=step)数组,push(i);
}
返回数组;
}
函数和(数组){
设total=0;
for(数组的let值){
总+=价值;
}
返回总数;
}
控制台日志(范围(1,10))
// → [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
日志(范围(5,2,-1));
// → [5, 4, 3, 2]
日志(总和(范围(1,10));

// → 55这称为三值运算

它是一行等价于if-else语句的语句

step = start < end ? 1 : -1

那么为什么如果步骤等于,比如说-2,在这个程序中它不会被更改为-1或1(因为步骤只能等于1或-1),但程序会将-2作为步骤整个操作用于参数,这意味着它是一个默认值。如果没有基于布尔值提供步长,则步长将等于1或-1。
if(start < end)
    step = 1;
else
    step = -1;
variable = (condition) ? true_value : false_value;