while(a = foo())
{
bar();
}
正在检查吗
答案 0 :(得分:3)
在每次迭代中,它将foo()
调用的结果分配给a
,如果结果是真实的,它将运行循环并再次尝试,直到调用的结果为false。 / p>
例如,虽然在一个条件内分配通常是一种代码味道,但在遍历全局正则表达式中的捕获组时经常会看到它:
const str = 'abcdefg';
const pattern = /(.)./g;
let match;
while (match = pattern.exec(str)) {
console.log('first captured group was ' + match[1]);
}
// after the last iteration, `match` is null, so the loop stops
如果赋值操作 not 不成功,并且导致失败的原因将引发错误,则整个脚本将由于该错误而停止。 (除非周围有try
/ catch
块)