问号在此功能中代表什么?

时间:2019-05-20 17:27:11

标签: javascript

我正在尝试学习JavaScript,并正在通过此代码。在功能function range(start, end, step = start < end ? 1 : -1)中,step = start < end ? 1 : -1代表什么?

function range(start, end, step = start < end ? 1 : -1) {
  let array = [];

  if (step > 0) {
    for (let i = start; i <= end; i += step) array.push(i);
  } else {
    for (let i = start; i >= end; i += step) array.push(i);
  }
  return array;
}

function sum(array) {
  let total = 0;
  for (let value of array) {
    total += value;
  }
  return total;
}

console.log(range(1, 10))
// → [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
console.log(range(5, 2, -1));
// → [5, 4, 3, 2]
console.log(sum(range(1, 10)));
// → 55

2 个答案:

答案 0 :(得分:0)

这意味着:

let step 
if(start < end) step=1
else step=-1

答案 1 :(得分:-1)

它称为ternary operator。这基本上意味着如果start < end的计算结果为true,则将1分配给步骤否则为-1

此行步骤=开始<结束? 1:-1可以写为

if(start < end){
 step=1;
}
else{
step=-1
}