如何让数字显示在警告框中而不是 NAN

How to get a number to display in alert box rather than NAN

我正在学习 javascript,我制作了一个简单的程序来将英尺转换为米,将磅转换为千克,我想在正确的测量值中使用警告框显示输出

我使用 typeof 检查了变量及其返回值,但警告框仍然显示 NAN。

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

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)

您发布的代码中发生的事情混合了所谓的 hoisting 和当您 运行 parseFloatundefined 变量上时,它使这些变量 NaN;无论你对它做什么操作,它都会永远记住 NaN

因此,我会建议 parseFloat 变量,当你确定你从中获得了一些价值时。

希望对您有所帮助。