Javascript 为什么JS for循环不';如果我放了return关键字,它就不能工作了?
当我放置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
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”五次——但它从不返回任何内容。