JavaScript数据类型问题

img


画了标记的加号,无论怎么转换数据类型,输出结果勇远都是字符串型,除非把➕号改成减号才会变成数字型,这种问题怎么解决呀,求大佬指点。

prompt返回的是字符串型,字符串与数值用+号计算都是把数值转成字符串与另一个字符串拼接成一个新的字符串
要先用parseInt()或者parseFloat() 把prompt返回的字符串转成数值,再与另一个数值相加

你题目的解答代码如下:

var n = 5;
var m = n + parseFloat(prompt("请输入数值","6"));
alert(m);

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

➕号的一个作用就是字符串拼接,如果想进行数值运算,需要先进行数据类型转换,使用parseInt(字符串),转换成整型,使用parseFloat(字符串),转换成浮点型。然后进行运算即可。你这里prompt(“请输入…”)返回的是字符串,需要先进行转换,parseFloat(prompt(请输入…)),这样来写

“+ ”隐式类型转换

prompt的结果本来就是字符串,既然减号OK, 那两个减号不就是加号了吗。
说一下为什么减号OK,加号不OK,
因为+除了可以做数字的运算,还有字符串拼接的功能,+两端如果任意一端是字符串,就会执行字符串的拼接,而不是数字加的运算;
而-只能是数字运算中的减, 在遇到字符串的数字时会自动转换成数字, js中有很多的隐式转换规则,很有趣(比如任何类型在需要布尔类型的时候都会自动转换成布尔)。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632