关于+操作符
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不应该是加法运算吗
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不应该是加法运算吗
2016-06-17
汗~~,差点误导别人。。。结合上楼,我重新归纳哈:
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
举报