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

javascript 输出异常,本应是数字,却输出 NaN

function RelativePoint(a,b,c) { this.a = a; this.b = b; this.c = c; } function sortNumber(a,b) { return a - b } function fpos2(pos) { var n = new Array(-pos.a, pos.b, -pos.c); n.sort(sortNumber); alert(pos.a+n[1] + "," + pos.b-n[1] + "," + pos.c+n[1]); } <input type="button" name="test2" value="test2" onclick="fpos2(new RelativePoint(2,-3,-1))" />
补充:哦,谢谢, pos.a+n[1] 等三个値本想给一个数赋值来着,临时改成联接成字符串显示,没注意,头次碰上这问题
答案:alert(parseInt(pos.a+n[1]) + "," + parseInt(pos.b-n[1])+ "," + parseInt(pos.c+n[1]));
根据从左到右结合性 在:
alert(pos.a+n[1] + "," + pos.b-n[1] + "," + pos.c+n[1]);
pos.a+n[1] + "," + pos.b 已为字符串"0,-3"然后是字符串再数字n[1]就会显示为NaN!
所以也可以这样
 alert((pos.a+n[1]) + "," + (pos.b-n[1]) + "," + (pos.c+n[1]));
其他:alert((pos.a+n[1]) + "," + (pos.b-n[1]) + "," + (pos.c+n[1]));
应该这样写,因为“+”既是连接符又是运算符,当然会出错。 

上一个:求JavaScript部分 代码讲解?
下一个:求这样一个javascript特效,鼠标停图片上,显示信息框

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