Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么JS for循环不';如果我放了return关键字,它就不能工作了?_Javascript_Loops_For Loop_Return - Fatal编程技术网

Javascript 为什么JS for循环不';如果我放了return关键字,它就不能工作了?

Javascript 为什么JS for循环不';如果我放了return关键字,它就不能工作了?,javascript,loops,for-loop,return,Javascript,Loops,For Loop,Return,当我放置return关键字时,如以下示例所示: for (let z = 0; z < 5; z++) { return console.log('one'); } //the result is : 'one' for (let z = 0; z < 5; z++) { console.log('one'); } //the result is : 'one', 'one', 'one', 'one', 'one' for(设z=0;z

当我放置return关键字时,如以下示例所示:

for (let z = 0; z < 5; z++) {
   return console.log('one');
  }
//the result is : 'one'
for (let z = 0; z < 5; z++) {
   console.log('one');
  }
//the result is : 'one', 'one', 'one', 'one', 'one'
for(设z=0;z<5;z++){
返回console.log('one');
}
//结果是‘一’
但是,当我删除return关键字时,如以下示例所示:

for (let z = 0; z < 5; z++) {
   return console.log('one');
  }
//the result is : 'one'
for (let z = 0; z < 5; z++) {
   console.log('one');
  }
//the result is : 'one', 'one', 'one', 'one', 'one'
for(设z=0;z<5;z++){
console.log('one');
}
//结果是:‘一’、‘一’、‘一’、‘一’、‘一’
循环工作并返回五个“一”
原因是什么?

return
返回值,立即结束函数


它不会启动循环的下一次迭代,因为这是函数的一部分(您已从中返回)。

循环是一条语句,它表示“根据条件多次执行{thing}”。但是,如果您
返回
,则告诉循环停止,立即退出,并返回任何内容

在本例中,
console.log
不直接执行任何操作,它只是作为副作用打印到控制台。它没有返回任何东西


它不会解析为一个值,因此在第一个示例中,您所做的实际上是在循环的一次迭代后返回
未定义的
(正如您所注意到的,console.log仍然将该值打印到控制台).

因为
return
在第一次迭代后以相同的方式中断循环,如果您将
中断在那里。完全退出函数作用域,并将值返回给调用方。我不确定您在上面的示例中使用它试图实现什么,因为
console.log('one')
本身不返回任何值,因此您将返回
undefined
。另外:“循环工作并返回五个'one',这是什么原因?”-请注意
return
ing与日志记录不同。您的函数登录到控制台“one”五次——但它从不返回任何内容。