学习javaScript break语句,并坚持理解为什么迭代行为很奇怪

问题描述 投票:0回答:1

了解中断声明。我从正在学习的书中获得以下代码:

for (const x of ['a', 'b', 'c']) {
    console.log(x);
    if (x === 'b') break;
    console.log('---')
}
// Output:
// 'a'
// '---'
// 'b'

为什么'b'仍然打印?英文代码打印['a','b','c']的每个元素x,如果元素x等于b,则停止!然后打印'---'。如果我要求停止迭代,“ b”从何而来?

javascript break
1个回答
0
投票

它仍然打印'b',因为在评估console.log(x)条件之前执行了if。一旦if语句为真,它将退出for循环并结束!


0
投票

这很简单。在第二行中,您正在记录x BEFORE的值,这是在中断第二次迭代。

© www.soinside.com 2019 - 2024. All rights reserved.