Javascript:计算三 Angular 形、圆形或矩形面积的 3 个函数返回未定义

标签 javascript function if-statement

很抱歉这个非常简单的问题,但我似乎无法缩小为什么以下函数对所有结果都返回“未定义”的原因。这是我的代码:

function calculateTriangleArea(x, y){
  x * y / 2 
}
function calculateRectangleArea(x, y){
  x * y
}
function calculateCircleArea(x){
  Math.PI * x * x
}

if (calculateRectangleArea.name === true)
 (function calculateRectangleArea(x, y)
  {return [x * y]
})
if (calculateTriangleArea.name === true)
  (function calculateTriangleArea(x, y){
   return[x * y / 2]
})

else (function calculateCircleArea(x){
  return [Math.PI * x * x]
})

当我运行这 9 个 console.log 命令时,它都返回未定义。

console.log(calculateRectangleArea(10, 5));     // should print 50
console.log(calculateRectangleArea(1.5, 2.5));  // should print 3.75
console.log(calculateRectangleArea(10, -5));    // should print undefined
console.log(calculateTriangleArea(10, 5)); // should print 25
console.log(calculateTriangleArea(3, 2.5)); // should print 3.75
console.log(calculateTriangleArea(10, -5)); // should print undefined
console.log(calculateCircleArea(10)); // should print 314.159...
console.log(calculateCircleArea(3.5)); // should print 38.484...
console.log(calculateCircleArea(-1)); // should print undefined

最佳答案

您在 calculateTriangleAreacalculateRectangleAreacalculateCircleArea 上缺少return。因为它们被其他函数在内部使用,所以您也需要从这些函数返回值:

function calculateTriangleArea(x, y) {
  return x * y / 2
}

function calculateRectangleArea(x, y) {
  return x * y
}

function calculateCircleArea(x) {
  return Math.PI * x * x
}

if (calculateRectangleArea.name === true)
  (function calculateRectangleArea(x, y) {
    return [x * y]
  })
if (calculateTriangleArea.name === true)
  (function calculateTriangleArea(x, y) {
    return [x * y / 2]
  })

else(function calculateCircleArea(x) {
  return [Math.PI * x * x]
})

console.log(calculateRectangleArea(10, 5));
console.log(calculateRectangleArea(1.5, 2.5));
console.log(calculateRectangleArea(10, -5));
console.log(calculateTriangleArea(10, 5));
console.log(calculateTriangleArea(3, 2.5));
console.log(calculateTriangleArea(10, -5));
console.log(calculateCircleArea(10));
console.log(calculateCircleArea(3.5));
console.log(calculateCircleArea(-1));

关于Javascript:计算三 Angular 形、圆形或矩形面积的 3 个函数返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945742/

相关文章:

php - 如何使用 php 从 seo 友好的 url 获取 id?

javascript - 带有动态数组的谷歌图表

javascript - 对象字面量变量在创建对象的语句内未定义

c++ - 如何执行多次调用的函数,只调用一次!

c++ - 使用 boost 进行函数式编程:将 boost::bind 传递给 boost::bind

mysql - MySQL 支持 "IF EXISTS"吗?

java - 校验值为 'ceiling' 值并返回对应变量

javascript - HTML select 中所选项目发生更改时如何处理事件

javascript - Play Framework : Passing renderArgs into Javascript functions?

java - 编码帮助(If 语句)