2012-02-05 56 views
0

为什么这是NaN在JavaScript中?typeof number + typeof number = NaN?

alert(typeof settings.mouse.x + ' --- ' + typeof getScalePercent((bg_w - a_w)/2, settings.bg.perc_position)); 
// alerts: number --- number 

var pos_x = settings.mouse.x - getScalePercent((bg_w - a_w)/2, settings.bg.perc_position);  
alert(pos_x); 
// alerts: NaN 

// this syntax because a jQuery plug-in 
var getScalePercent = function (value, perc) { 
    return value * perc/100; 
} 

// settings.mouse.x == 102 basically an integer 
// getScalePercent(...) == 10 or 12.0390394028 basically an number 

alert(settings.mouse.x + ' (' + typeof settings.mouse.x + ') --- ' + getScalePercent(((bg_w - a_w)/2), settings.bg.perc_position) + '(' + typeof getScalePercent(((bg_w - a_w)/2), settings.bg.perc_position) + ')'); 
// returns 102 (number) --- 12.000340563 (number) 

我在哪里错了?

+0

变量的价值是什么? getScalePercent是做什么的? – ysrb 2012-02-05 10:30:59

+0

'settings.mouse.x'的值和'getScalePercent'函数的结果是什么? – 2012-02-05 10:31:33

+0

settings.bg.perc_position的值是多少? – 2012-02-05 10:31:54

回答

3

我的猜测是getScalePercent返回NaN。由于typeof NaN正在返回number。检查功能是否符合你期望的功能。

+0

在getScalePercent方法中传递'undefined' val而不是'number'时出现错误,谢谢! – vitto 2012-02-05 10:48:06