为什么numa>numb 要重新赋值变量
这个为什么numa>numb要重新赋值jq1呢?为什么不像前面的例子当中的一样直接用numa>numb呢?我试了一下,变成这样了,为什么不像例子里面那样的
这个为什么numa>numb要重新赋值jq1呢?为什么不像前面的例子当中的一样直接用numa>numb呢?我试了一下,变成这样了,为什么不像例子里面那样的
2016-07-08
document.write(exp1,exp2,exp3,....)
exp1,exp2,exp3,....是指字符串参数,这些字符串参数可以是变量或值为字符串的表达式.
另外需要知道:
String+Boolean =String 如 var a = "1"+true 则 a ="1true"
String+String =String 如 var a ="1" +" aa" 则 a ="1aa"
String +Number =String 如 var a ="1"+ 2 则 a ="12"
举例:
var numa,numb,jq1;
numa=1;
numb=7;
jq1=numa>numb;
(1)document.write("numa大于numb的分数吗?"+jq1+"<br>")
//String+Boolean+String 最后得到String
结果: numa大于numb的分数吗?false
(2)document.write("numa大于numb的分数吗?"+"numa>numb"+"<br>")
//String+String+String 最后得到String
结果: numa大于numb的分数吗?numa>numb
(3)document.write("numa大于numb的分数吗?"+"(numa>numb)"+"<br>")
//String+String+String 最后得到String
结果: numa大于numb的分数吗?(numa>numb)
(4)document.write("numa大于numb的分数吗?"+(numa>numb)+"<br>")
//String+(Number>Number)+String,根据运算法则,此时的(numa>numb)会优先运算,就是先算括号里再看括号外,(numa>numb)为(1>7),得到false;然后运算String+Boolean+String,最后得到String ;
结果: numa大于numb的分数吗?false
(5)document.write("numa大于numb的分数吗?"+numa>numb+"<br>")
//String+Number>Number+String,根据运算法则,先计算+,在计算>,因此最后需要比较的是String>String,即"numa大于numb的分数吗?1">"7<br>",值为true.所以最后document.write()返回true
注: 当关系运算符操作,两个操作数都是字符串(String)时,比较两个字符串对应的字符编码值(即Unicode)
"numa大于numb的分数吗?1"的第一位是n,"7<br>"的第一位是7,n的字符编码值为110,7的字符编码值为55,110比55大,返回true
结果: true
(6)document.write("numa大于numb的分数吗?"+numa+">"+numb+"<br>")
////String+Number+String+Number+String 最后得到String
结果: numa大于numb的分数吗?1>7
(7)document.write("numa大于numb的分数吗?"+"numa">"numb"+"<br>")
//String+String>String+String,同理于(5),"numa大于numb的分数吗?numa">"numb<br>",前三位n,u,m的值都相同,比较第四位,a的字符编码值为97,b的字符编码值为98,97比98小,结果为false
结果: false
举报