为什么var必须在JS函数内部



我尝试使用JS函数来计算BMI。我的代码如下。当我试图运行它时,它出现了以下错误:;未捕获的ReferenceError:未定义权重">

代码:

function bmiCalculator(weight, height) {
return weight/(height**2);
}
var bmi = Math.round(bmiCalculator(weight, height));
console.log("My BMI is " + bmi);

bmiCalculator(65, 1.8);

如果我把我的var bmi放在函数中,那么我就不会得到这个错误。但我不明白为什么我不能把我的var bmi放在函数之外。

我的想法是:

  • 当代码运行var bmi行时,它将获得函数的输出:bmiCalculator(体重、身高(,并将其四舍五入到最接近的整数,然后这将是bmi。

  • 然后我可以记录var bmi。

我不明白为什么这不起作用。

提前谢谢。

错误"ReferenceError:weight is not defined"说明了一切。变量"weight"未定义。您正在将变量传递给未定义的函数bmiCalculator。当你把它放在函数中时,它会接受函数中传递的参数。

在代码片段中,您调用了两次声明的函数。

这里有一个var bmi = Math.round(bmiCalculator(weight, height));

上面在函数中传递的变量,即重量和高度没有定义,这导致了错误。

第二次通话CCD_ 2,这是正确的。

您可以通过在第一次调用中声明所使用的变量或只传递值来修复它。

function bmiCalculator(weight, height) {
return weight/(height**2);
}
//Passing the values
var bmi = Math.round(bmiCalculator(65, 1.8));
console.log("My BMI is " + bmi);
/*This call is not required as it's not doing anything(returned value is not being used)*/
//bmiCalculator(65, 1.8);

或者,声明变量

function bmiCalculator(weight, height) {
return weight/(height**2);
}
//Declaring the variables
var weight = 65;
var height  = 1.8;
var bmi = Math.round(bmiCalculator(weight, height));
console.log("My BMI is " + bmi);
/*This call is not required as it's not doing anything(returned value is not being used)*/
//bmiCalculator(65, 1.8);

最新更新