Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 parseInt()函数只工作一次?_Javascript - Fatal编程技术网

Javascript parseInt()函数只工作一次?

Javascript parseInt()函数只工作一次?,javascript,Javascript,我是Javascript新手,对使用parseInt()函数将stings转换为数字有疑问 我通过编写下面的代码来练习parseInt,并在将用户输入从字符串变为数字之前,使用typeof检查控制台中的数据类型。显示结果后,我再次使用控制台日志检查数据类型,它仍然是字符串 parseInt()是否在此语句运行期间只转换一次,然后返回到原始状态?原始状态指最初编写代码的状态。在这种情况下,HTMLBadges会提示用户输入字符串 let HTMLBadges = prompt("How

我是Javascript新手,对使用parseInt()函数将stings转换为数字有疑问

我通过编写下面的代码来练习parseInt,并在将用户输入从字符串变为数字之前,使用typeof检查控制台中的数据类型。显示结果后,我再次使用控制台日志检查数据类型,它仍然是字符串

parseInt()是否在此语句运行期间只转换一次,然后返回到原始状态?原始状态指最初编写代码的状态。在这种情况下,HTMLBadges会提示用户输入字符串

let HTMLBadges = prompt("How many HTML badges have you earned?");
let CSSBadges = prompt("How many CSS badges have you earned?");

console.log(typeof HTMLBadges + typeof CSSBadges);

totalBadges = parseInt(HTMLBadges) + parseInt(CSSBadges);

console.log(`You have a total of ${totalBadges} badges!`);

console.log(typeof HTMLBadges + typeof CSSBadges);

parseInt
返回一个
数字
,但它不会原地改变原始变量

请尝试您的代码,并在代码末尾添加以下内容:

let numberVersion = parseInt(HTMLBadges)
console.log(typeof numberVersion)

您将看到
parseInt
内部
numberVersion
的结果实际上是一个数字,但同样,原始变量
HTMLBadges
在调用过程中不会发生突变。

parseInt
不会更改参数。它返回一个新的整数,但参数保持不变。为什么不呢?您没有将其分配给变量,也没有执行
HTMLBadges=parseInt(HTMLBadges)
字符串在javascript中是不可变的。这是一种奇特的说法,我们不能改变原作。如果您以后想访问它们,您需要将突变保存到变量中。谢谢大家!我能否高效地编写代码,并将赋值和变异结合在一起,以便提示用户提供值,同时将其更改为数字?类似于“```让HTMLBadges=parseInt(HTMLBadges.prompt(“您获得了多少HTML徽章?”)”);``差不多。不过您不会调用
HTMLBadges.prompt
——只要
parseInt(prompt(“…”)
。请记住,您可能想要测试错误(比如它不是一个数字)。如果此答案解决了您的问题,请随意单击复选标记以接受它。