【问题标题】:Function in javascript is returning undefined (NaN)?javascript中的函数返回未定义(NaN)?
【发布时间】:2020-03-18 14:37:37
【问题描述】:

我们需要在 javascript 中对序列求和到第 n 项的代码: 1/(2n+1) 当我执行函数 series(80);它提醒了 NaN。 代码:

function series(n){
        var i;
        var s;
        for(i = 1; i <= n; i++) {
            s = s + 1/(2*i+1);
        }

        alert(s);

    }
series(80);

【问题讨论】:

  • 您声明 n 两次,而 undefined 不是数字。移除 var n 并设置初始数值。
  • s 在您第一次使用时未定义。你的计算相当于'undefined' + 1/(2*i+1);

标签: javascript function for-loop undefined series


【解决方案1】:

你可以在s = 0上设置默认值

function series(n) {
  var i;
  var s = 0;
  var n;
  for (i = 1; i <= n; i++) {
    s = s + 1 / (2 * i + 1);
  }

  alert(s);

}
series(80)

【讨论】:

    【解决方案2】:

    这里是示例,不需要声明 n,因为我们将它作为参数传递给函数。

    function series(n) {
       var i, s = 0;
       for(i = 1; i <= n; i++) {
           s = s + 1/(2*i+1);
       }
       alert(s);
    }
    series(80);
    

    https://jsfiddle.net/x1ea748y/1/

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多