Javascript 如何获取要显示在警报框中而不是NAN中的数字

Javascript 如何获取要显示在警报框中而不是NAN中的数字,javascript,alert,nan,parsefloat,Javascript,Alert,Nan,Parsefloat,我正在学习javascript,我制作了一个简单的程序,将脚转换为米,将磅转换为千克,并希望使用正确测量值的警报框显示输出 我使用typeof及其返回编号检查了变量,但警报框仍然显示NAN 我是javascript新手,我正在学习我的课程 var kgMark = parseFloat(kgMark); var meterMark = parseFloat(meterMark); var bmiMark = parseFloat(bmiMark); var feetMark = parseFl

我正在学习javascript,我制作了一个简单的程序,将脚转换为米,将磅转换为千克,并希望使用正确测量值的警报框显示输出

我使用typeof及其返回编号检查了变量,但警报框仍然显示NAN

我是javascript新手,我正在学习我的课程

var kgMark = parseFloat(kgMark); 
var meterMark = parseFloat(meterMark);
var bmiMark = parseFloat(bmiMark);
var feetMark = parseFloat(feetMark);
var lbsMark = parseFloat(lbsMark);

kgMark = lbsMark / 2.2046;
meterMark = feetMark / 3.2808;
bmiMark = kgMark / (meterMark * meterMark);

feetMark = prompt('How tall is mark in feet?');
lbsMark = prompt('How much does mark weigh in pounds?');



alert('Mark is ' + ' ' + kgMark + ' '+ 'kilograms');
alert('Mark is ' + ' ' + meterMark + ' ' + 'meters');
alert('Marks BMI is ' + ' ' + bmiMark);

我试过几种不同的方法,我真的被卡住了。我一直在警报框中获取NAN错误。

首先获取一个值,然后执行每个逻辑:

var feetMark = prompt('How tall is mark in feet?');
var lbsMark = prompt('How much does mark weigh in pounds?');


feetMark = parseFloat(feetMark);
lbsMark = parseFloat(lbsMark);

var kgMark = lbsMark / 2.2046;
var meterMark = feetMark / 3.2808;
var bmiMark = kgMark / (meterMark * meterMark);

alert('Mark is ' + ' ' + kgMark + ' '+ 'kilograms');
alert('Mark is ' + ' ' + meterMark + ' ' + 'meters');
alert('Marks BMI is ' + ' ' + bmiMark);

将代码更改为以下代码:

var feetMark = parseFloat(prompt('How tall is mark in feet?'));
var lbsMark = parseFloat(prompt('How much does mark weigh in pounds?'));

kgMark = parseFloat(lbsMark / 2.2046);
meterMark = parseFloat(feetMark / 3.2808);

var bmiMark = parseFloat(kgMark / (meterMark * meterMark));

console.log('Mark is ' + ' ' + kgMark + ' '+ 'kilograms');
console.log('Mark is ' + ' ' + meterMark + ' ' + 'meters');
console.log('Marks BMI is ' + ' ' + bmiMark)
在您发布的代码中发生的是一种混合现象,称为
提升
,并且当您对
未定义的
变量运行
parseFloat
时,会使这些变量
NaN
;您对它执行的任何操作都将始终记住
NaN

因此,我建议在您确定收到一些值时,对变量进行
parseFloat
分析


我希望这有帮助。

您的代码中的
kgMark
是什么?您在哪里定义了它?
var kgMark=parseFloat(kgMark)您希望此行做什么?在变量被创建之前,您无法分析它…
typeof NaN==“number”
b您的提示是在使用它们之后出现的吗?请尝试使用此选项而不是kgMark和其他变量:
isNaN(kgMark)?kgMark:defaultValue
,其中defaultValue是您希望在变量为Nancy的情况下显示的值。您可以添加更多关于为什么您的解决方案是解决方案的信息吗?当我们将变量解析为float时,它没有值,因此转换为NAN。
var kgMark=parseFloat(kgMark)-
kgMark
在此未定义。。它会起作用,因为你以后会重新定义它,但它毫无意义。我做了,但我的声誉不到15,所以我想它不会公开改变。