2012-02-05 111 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

相關問題