当前位置:编程学习 > JS >>

请教一个javascript的小问题,关于运算符的

下面语句: var i,j,ab; i=prompt("第一个数字","3"); j=prompt("第二个数字","4"); ab=(i+j); alert(ab) 为何弹出框的结果是 34 而不是 7??? (如果改为ab=(i-j) 结果返回的就是两者之差)求解。
答案:+号除了是数学运算符即加号,同时也是字符串连接符,当+号两边的表达式有任何一个是字符串时,它就会自动按字符串连接符处理,只有两边都是数字才按加号处理,因此
"3" + "4" = "34"
3 + 4 = 7
而-号的作用只是数学运算符减号,所以不管-号两边的表达式是不是数字,它都会先将其转换为数字(如果不能转为数字的则报错)再按减法运算,所以
"3" - "4" = -1
3 - 4 = -1
其他:.你的i和j不是数字而是字符串 3和4连在一起当然是34了.......
这么写就错不了.
var  i,j,ab;
i=3;
j=4;
ab=(i+j);
alert(ab); 如果把引号去掉你就得到7了 对于数值数据+表示加法运算,得到结果也是数值;
对于字符数据+表示连接运算,得到结果也是字符数据. 很明显嘛 "3" "4" 这是字符 不是数字的,数字是不可以家" " ,加了" " 都是字符串,字符串加字符串当然还是字符串了! 

上一个:网页游戏都采用Flash编写,想要写此类游戏的辅助工具,学习JavaScript 还有帮助吗? 如果不行,要学什么呢
下一个:请帮我解释下下面的javascript代码 谢谢了!!!求解释清楚一点!!!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,