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

关于+操作符

  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 回答

<!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>

1 回复 有任何疑惑可以回复我~
#1

bestDove

输出结果:30看看效果和区别,应该是符号优先级问题:301020a+b
2016-06-17 回复 有任何疑惑可以回复我~
#2

慕UI2261137 提问者

非常感谢!
2016-06-19 回复 有任何疑惑可以回复我~

好了 谢谢

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

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

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

慕UI2261137 提问者

没懂你什么意思
2016-06-22 回复 有任何疑惑可以回复我~

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

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


1 回复 有任何疑惑可以回复我~
#1

慕UI2261137 提问者

不管怎样,还是要自己实验才能有的收获
2016-06-20 回复 有任何疑惑可以回复我~

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

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

慕UI2261137 提问者

我复制的,在仔细看看吧
2016-06-19 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~
#1

慕UI2261137 提问者

自己去实验一下吧
2016-06-19 回复 有任何疑惑可以回复我~

再比如

 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

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

慕UI2261137 提问者

document.write(1+2+"3")结果为1+23; 我实验了一下这个结果是33!!!用的谷歌浏览器,HBuilder
2016-06-19 回复 有任何疑惑可以回复我~

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

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

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

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


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

举报

0/150
提交
取消

关于+操作符

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