【问题标题】:Javascript iterator in return statementreturn 语句中的 Javascript 迭代器
【发布时间】:2015-05-27 21:47:03
【问题描述】:

我一直在研究 javascript 示例,我遇到了这个:

var numb=1;

function funName(numb){
    // function work
    return numb+1;
}

在这个例子中,我不确定每次返回 numb+1 时数字是如何迭代的;我认为它必须看起来更像 numb=numb+1;

这只是因为'+1'在return语句中吗?

【问题讨论】:

  • 此函数只是将+1 添加到传递给它的任何内容中。
  • 您可以通过在循环迭代之前或之间将函数调用的返回值分配给局部变量来在循环中使用它。例如:for (var numb = 1; numb < 5; numb = funName(numb)) { // do something with numb 1, 2, 3, 4 }var numb = 0; while((numb = funName(numb)) < 5) { // do something with numb 1, 2, 3, 4 }

标签: javascript iterator


【解决方案1】:

该代码永远不会触及您在该行之后的第 1 行定义的 numb 变量。

该函数有一个局部范围的变量,也称为numb,在掩蔽它的参数列表中声明。

您提供的任何代码都不会修改任何变量。该函数(在您的示例中未调用)仅返回一个值,该值将 1 添加到传递给它的值。

【讨论】:

  • 所以我必须调用类似 numb=funName(numb); 的东西吗?为此实际迭代变量(在第 1 行)?
  • 是的。但是忘记函数并只使用numb++ 会更简单。
  • 感谢您的非刻薄回答
猜你喜欢
  • 2022-12-05
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 2019-06-16
  • 2017-12-24
  • 2013-04-10
相关资源
最近更新 更多