加法运算问题

来源:1-7 JavaScript-什么是变量

Samuran

2017-09-07 23:19

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

写回答 关注

3回答

  • 慕粉1912332396
    2017-09-27 22:57:58

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

  • 大山的子孙哟爱太阳
    2017-09-08 16:50:30

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

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

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

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

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

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

  • Samuran
    2017-09-07 23:25:02

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

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

JavaScript入门篇

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

739817 学习 · 9566 问题

查看课程

相似问题