【问题标题】:typeof number + typeof number = NaN?类型数 + 类型数 = NaN?
【发布时间】:2012-02-05 10:28:29
【问题描述】:

为什么在 JavaScript 中这是 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)

我哪里错了?

【问题讨论】:

  • 变量的值是多少? getScalePercent 有什么作用?
  • settings.mouse.x 的值和getScalePercent 函数的结果是什么?
  • settings.bg.perc_position 的值是多少?
  • Can't reproduce - 请发布更多代码。也许bg_w 和/或a_w 在你调用函数时没有定义。

标签: javascript


【解决方案1】:

我的猜测是 getScalePercent 正在返回 NaN 。因为typeof NaN 正在返回number。检查函数是否符合您的预期。

【讨论】:

  • 在方法getScalePercent 中传递undefined val 而不是number 时出错,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 2020-11-04
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多