【问题标题】:Why does the following simple method return NaN (not a number) in Javascript?为什么以下简单方法在 Javascript 中返回 NaN(不是数字)?
【发布时间】:2020-08-19 09:49:25
【问题描述】:

上面显示的是我在 Chrome JS 控制台上运行的一个简单的 JS 代码。但是当我访问我在对象名称“obj”中创建的简单添加方法时,它返回 NaN,如下所示。谁能告诉我为什么会发生这种情况以及如何解决?

【问题讨论】:

  • 请提供实际代码,不要截图
  • 3 + undefined 计算结果为 NaN。你的意思是obj.add(1, 2) 吗?

标签: javascript google-chrome object data-structures methods


【解决方案1】:

因为第一个参数是1+2 (=3),第二个参数是undefined

3+undefined=NaN

试试console.log:

function add(x,y) {
   console.log(x,y,x+y)
   return x + y
}
console.log(add(1+2))
console.log(add(1,2))

【讨论】:

    【解决方案2】:

    您没有传递第二个参数,因此 javascript 将其解释为未定义。

    var obj = {
      add: function(x, y) {
        return x + y;
      }
    }
    
    obj.add(1, 2) // 1 + 2 = 3
    obj.add(1+2) // 1+2 + undefined = 3 + undefined = NaN
    

    【讨论】:

      【解决方案3】:

      因为你应该通过 obj.add(1,2) 而不是 (1+2)

      【讨论】:

        【解决方案4】:

        你没有正确传递参数see here "y" 在你的情况下永远不会传递。

        【讨论】:

          【解决方案5】:

          因为你没有传递第二个参数。

          obj.add(1+2) 等同于 obj.add(3, undefined)

          这样通过就行了-

          obj.add(1, 2);

          【讨论】:

            猜你喜欢
            • 2021-06-18
            • 2011-01-08
            • 1970-01-01
            • 2012-12-27
            • 2011-02-17
            • 2020-03-25
            • 1970-01-01
            相关资源
            最近更新 更多