Javascript函数/未定义错误 - 提示计算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript函数/未定义错误 - 提示计算相关的知识,希望对你有一定的参考价值。

在学习javascript并尝试解决挑战问题时,我的代码不断输出“未定义的值”。

我的代码:

function paidAmount(bill){
var tipPercent
if (bill < 50){
    tipPercent = 0.20;
}
else if (bill >= 50 && bill <=200){
    tipPercent = 0.15;
}
else{
    tipPercent = 0.10;
}
return bill * tipPercent;
}

var tip1 = console.log(paidAmount(124));
var tip2 = console.log(paidAmount(48));
var tip3 = console.log(paidAmount(268));

var tipTotal = [tip1, tip2, tip3];

console.log(tipTotal);

输出:

18.599999999999998
9.600000000000001
26.8
(3) [undefined, undefined, undefined]
答案

您无法分配console.log内的值。让它们分开

function paidAmount(bill){
var tipPercent
if (bill < 50){
    tipPercent = 0.20;
}
else if (bill >= 50 && bill <=200){
    tipPercent = 0.15;
}
else{
    tipPercent = 0.10;
}
return bill * tipPercent;
}


var tip1 = paidAmount(124);
var tip2 = paidAmount(48);
var tip3 = paidAmount(268);
console.log(paidAmount(124));
console.log(paidAmount(268));
console.log(paidAmount(48));
var tipTotal = [tip1, tip2, tip3];

console.log(tipTotal);
另一答案

[console.log(tip1),console.log(tip2),...]错了,但你可以尝试另一种方式:

function paidAmount(bill) {
  var tipTotal = [] ;
  var tipPercent ;

  for (value of bill) {
    tipPercent = (value < 50 ) ? 0.20 : ( ( value >= 50 && value <= 200) ? 0.15 : 0.10 ) ;
    tipTotal.push( value * tipPercent ) ;
  }

  return tipTotal ;
}

console.log( paidAmount([124, 48, 268]) );
另一答案

console.log返回undefined。有关详细信息,请参阅下面链接的规范。

Namespace Console spec link

Namspace Console spec image

Logger spec

此外,在您的示例中,您不必将结果存储到变量tip1,tip2,tip3中。

相反,您可以直接调用console.log中的paidAmount:

console.log(paidAmount(124), paidAmount(48), paidAmount(268));

以上是关于Javascript函数/未定义错误 - 提示计算的主要内容,如果未能解决你的问题,请参考以下文章

Bourbon Refills Navigation JavaScript 错误:未捕获类型错误:未定义不是函数

Javascript未定义,不是函数错误

论坛出现:“jquery未定义”错误提示,怎样解决?

Javascript:将画布另存为图像 ==>“未捕获的类型错误:未定义不是函数”

js一直提示函数未定义

javascript onclick调用函数,进入不了函数,报函数未定义的错误