Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';t Number(window.prompt)将字符串转换为整数_Javascript - Fatal编程技术网

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会做得更好。这更像是一个验证问题。