为了账号安全,请及时绑定邮箱和手机立即绑定

加法运算问题

var x,y,z; x = "7"; y = "3"; z = "2"; document.write(x+y); 为什么输出是73,而其他运算-,*,/都是正确的

正在回答

3 回答

把双引号去掉就是数字运算了。有双引号7和3都是字符型的,他们用+连接 ,相当于2个字符输出,而没有运算。

0 回复 有任何疑惑可以回复我~

JavaScript 变量有很多种类型,但是现在,我们只关注数字和字符串。

当您向变量分配文本值时,应该用双引号或单引号包围这个值。

当您向变量赋的值是数值时,不要使用引号。如果您用引号包围数值,该值会被作为文本来处理。

也就是,当 x="7",我们认为这是字符串,当 x=7时,我们认为这是数字。

“+”在JavaScript中有点特殊,如果是在数字之间则是运算,如果是字符则是拼接,其它-*/则会把字符串转变成数值进行运算。

你这里把x,y,z设成字符了,所以+法时则显示为73,其它时候正常。

2 回复 有任何疑惑可以回复我~

我找到的资料里是这样解决的,document.write(x*1+y*1+z*1);   因为加法运算被默认为字符串相加。

那么,为什么其他运算方法没有默认为字符串间的运算? 有没有更简单的方法?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript入门篇
  • 参与学习       739817    人
  • 解答问题       9566    个

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

进入课程

加法运算问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信