关于+操作符

来源:2-13 编程练习

慕UI2261137

2016-06-17 17:25

  var a,b,sum;

  var  a  = 5;

  var  b  = 100%7;  

  sum = a > b && a*b > 0 ;

  document.write( "我认为 a 的值是:" +a + " b的值是:" + b + "sum 的值是:" + a+b +"<br/>");



为什么sum的值为a和b的值的连接,a和b明明是两个整型变量啊,a+b不应该是加法运算吗

写回答 关注

8回答

  • bestDove
    2016-06-17 17:49:45
    已采纳

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>Title</title>
    </head>
    <body>
    <script>
       var a =10;
       var  b = 20 ;
       var  c = a + b;
       document.write(c);

       document.write( "看看效果和区别,应该是符号优先级问题:"+  (a + b )+ a + b + "a+b");
    </script>
    </body>
    </html>

    慕UI226...

    非常感谢!

    2016-06-19 13:21:23

    共 2 条回复 >

  • 慕田峪1293733
    2016-06-23 11:56:31

    好了 谢谢

  • 慕田峪1293733
    2016-06-22 15:29:57

    为什么我的运行不起来 js 2-13

    慕UI226...

    没懂你什么意思

    2016-06-22 16:49:11

    共 1 条回复 >

  • qq_望天穹_0
    2016-06-19 17:27:11

    汗~~,差点误导别人。。。结合上楼,我重新归纳哈:

    document.write()中原来还带有结合性和优先级:

    1.document.write(1+2+"3") //结果为字符串33   document.write(typeof(1+2+"3"))

      document.write(1+2)         //结果为数字3      document.write(typeof(1+2))

      document.write(a+b+"")   //结果为字符串3    document.write(typeof(a+b+""))

      document.write(a+b)        //结果为数字3      document.write(typeof(a+b))

      //原因:括号内按照从左往右顺序执行,先是1+2=3,3遇到字符串"3",转变为字符串,然后就是"33"了。

    2.document.write("3"+1+2) //结果为字符串312  document.write(typeof("3"+1+2))

      document.write(3+1+2)     //结果为数字6      document.write(typeof(3+1+2))

      //原因:最开始遇到"3",所以后面的数字都转为字符串。

    3.()的优先级比算数运算符的高,所以优先执行

      document.write("3"+(1+2))   //结果为字符串33而不是312


    慕UI226...

    不管怎样,还是要自己实验才能有的收获

    2016-06-20 20:24:46

    共 1 条回复 >

  • 慕粉3414280
    2016-06-17 20:22:04

     document.write( "我认为 a 的值是:" +a + " b的值是:" + b + "sum 的值是:" + a+b +"<br/>");;这段代码你自己乱敲的吧,练习题我看了N遍都没见过这段代码。。。  同楼上见解。。

    慕UI226...

    我复制的,在仔细看看吧

    2016-06-19 13:08:23

    共 1 条回复 >

  • qq_北国苍狼_03509367
    2016-06-17 18:19:37

    document.write语言中+不表示运算,仅仅表示字符串或者变量的串联

    慕UI226...

    自己去实验一下吧

    2016-06-19 13:23:24

    共 1 条回复 >

  • qq_望天穹_0
    2016-06-17 17:53:02

    再比如

     document.write("a+b")结果为a+b

     document.write(1+2)结果为3

     document.write(1+2+"3")结果为1+23;

     document.write("1+2"+"3+4")结果为1+23+4

    慕UI226...

    document.write(1+2+"3")结果为1+23; 我实验了一下这个结果是33!!!用的谷歌浏览器,HBuilder

    2016-06-19 13:17:07

    共 1 条回复 >

  • qq_望天穹_0
    2016-06-17 17:43:39

     document.write(内容)中只要内容含有字符串(如空字符"","我认为 a 的值是:","<br/>"),其余整型变量都会转换为字符串,+相当于将多个字符串相连接,结果以字符串形式输出。

    比方说:var a=1,b=2;

     document.write(a+b)结果为3

     document.write(a+b+""))结果为12


JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468062 学习 · 21891 问题

查看课程

相似问题