Javascript 为什么';t Number(window.prompt)将字符串转换为整数
Javascript 为什么';t Number(window.prompt)将字符串转换为整数,javascript,Javascript,var numberOne=Number(窗口提示(“键入数字”); //在提示符中,我输入了“99”,得到了输出NaN 控制台日志(numberOne); var numberTwo=“99”; 控制台日志(编号(numberTwo))发生这种情况的原因是window.prompt已返回字符串。因此,当您输入“99”时,您实际上是在尝试将''99'转换为一个数字,而这是无法实现的 从 请注意,结果是一个字符串。这意味着您有时应该强制转换用户给定的值。例如,如果他的答案应该是一个数字,您应该将该
var numberOne=Number(窗口提示(“键入数字”);
//在提示符中,我输入了“99”,得到了输出NaN
控制台日志(numberOne);
var numberTwo=“99”;
控制台日志(编号(numberTwo))代码>发生这种情况的原因是window.prompt已返回字符串。因此,当您输入“99”时,您实际上是在尝试将''99'
转换为一个数字,而这是无法实现的
从
请注意,结果是一个字符串。这意味着您有时应该强制转换用户给定的值。例如,如果他的答案应该是一个数字,您应该将该值转换为数字。
函数的作用是:将对象参数转换为
表示对象的值
返回:一个数字。将不同的对象值返回到它们的数字。
如果该值无法转换为合法数字,则返回NaN。
如果未提供参数,则返回0
我假设你输入了99(不带引号)。如果使用引号输入,则需要解析和/或验证输入
var numberOne=Number(window.prompt(“Try 99(带数字转换)”,”);
if(numberOne==99)console.log('string 99已成功转换!');
numberOne=window.prompt(“Try 1(无数字转换)”,“”);
if(numberOne==1)console.log('字符串1已成功转换!');
else console.log('字符串1未转换为数字(int)'
window.prompt()为您返回一个字符串
源代码
var numberOne= Number(window.prompt("Type a number", ""));
如果输入99
,变量numberOne
将是所需的“99”
。使用number()
但是如果您输入“99”
,变量numberOne
将是“99”
,无法转换为数字。您的代码可以工作。请尝试控制台.log(number(numberOne))代码>而不是console.log(numberOne)代码>或parseInt
代码可以工作,但是如果你想在它成为数字之前计算任何东西,你需要首先解析它,我认为这个问题应该重新定义——为什么数字(window.prompt)不能像第二个例子中那样将字符串转换为整数。我认为没有人主张任何东西。我认为这是一个关于Javascript为何如此运行的一般性问题;如果(numberOne==99){alert('string已成功转换!');}这两者有什么不同?@JagadeshaNH不确定我是否理解。。。他们没有什么不同。编辑:缺少的数字将使其无法转换为数字类型。我也会更新这个例子。我删除了这个数字,它仍然有效,这就是我要问的。@JagadeshaNH我更新了这个例子来说明。当与==
比较时,javascript会自动转换为适当的类型。当使用===
时,您也在比较数据的类型。我知道==和===之间的区别,无论如何,我的怀疑是不同的。谢谢你的帮助,谢谢拉里。但是,如果其他人不能理解这个问题,我不明白为什么这个问题会被否决。关于粗体部分:Number()
会转换为适当的类型。显然,它不能将“'99”
转换为int,但我怀疑parseInt会做得更好。这更像是一个验证问题。