Javascript - 函数,缺少参数

tar*_*yte 2 javascript arguments function conditional-statements

宝贝编码器在这里,刚刚进入功能。我创建了一个计算矩形面积的函数,只要提供两个参数,它就可以工作。如果只提供一个参数,我希望我的代码假设形状是正方形(因此长度和宽度相等)。我一直在尝试提出一个条件,但不知道如何说“如果只有一个参数,则长度 === 宽度”。任何指针表示赞赏!

function area(length, width) {
    let rectangleArea = Number(length) * Number(width);
    return rectangleArea;
}
console.log(area(10, 5));
Run Code Online (Sandbox Code Playgroud)

adi*_*iga 6

一种选择是为参数使用默认的函数参数,如果没有传递widthlength则将其设置为

function area(length, width = length) {
  let rectangleArea = length * width;
  return rectangleArea;
}

console.log(area(10, 5));
console.log(area(10));
Run Code Online (Sandbox Code Playgroud)

默认函数参数是最近的特性。如果它令人困惑,您可以检查width参数是否undefined并将其设置为length

function area(length, width) {
  if (typeof width === "undefined")
    width = length;

  let rectangleArea = length * width;
  return rectangleArea;
}

console.log(area(10, 5));
console.log(area(10))
Run Code Online (Sandbox Code Playgroud)

此外,Number()这里不需要包装器。你已经在传递数字了。即使您将字符串作为参数传递area("10", "5"),它们也会被强制转换为数字并相乘。