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特效,鼠标停图片上,显示信息框