运行函数后为什么会出现NaN?

时间:2019-01-08 00:49:04

标签: javascript

我观看了一个视频,其中有人在做同样的事情,并且可以正常工作。

var beer = 2.50;
var hot_dog = 2.75;
var pop = 3.00;
var cash = 15.00;

function hot_dog() {
  cash = cash - hot_dog;
  console.log(cash)
}
hot_dog();

3 个答案:

答案 0 :(得分:0)

您有一个名为hot_dog的变量,并且还尝试命名一个function hot_dog。您不能同时拥有这两种方式。使用单独的名称,您的代码应该可以正常工作,例如:

var beer = 2.50;
var hot_dog = 2.75;

var pop = 3.00;

var cash = 15.00;

function hot_dog_func() {
  cash = cash - hot_dog;
  console.log(cash)
}
hot_dog_func();
cash = cash - pop;
console.log(cash)

答案 1 :(得分:0)

变量和函数的名称必须唯一。 hot_dog是一个变量。它也被声明为函数。

您可以通过使函数描述其功能来重新设计框架,而不用给它一个随机的名称:

var beer = 2.50;
var hot_dog = 2.75;

var pop = 3.00;

var cash = 15.00;

function buy(item_cost) {
  cash = cash - item_cost;
  console.log(cash)
}

buy(hot_dog);
cash = cash - pop;
console.log(cash)

在实际的JavaScript代码中,您可能想制作一个class来定义现金余额等等。

答案 2 :(得分:0)

请参阅这篇文章:What happens when JavaScript variable name and function name is the same?

当您在减法运算中使用hot_dog变量而不是数字时,因此从NaN减去的任何东西都是NaN