在学习ES6的过程中,我偶然发现了这段代码:
for (let conversion of conversions) {
let result
if ((result = conversion(data[i], orig[i])) !== undefined) {
console.log(result)
data[i] = result
}
}
我花了几分钟才明白if if语句,并意识到result
的值已经分配到那里。
所以我的问题是,正在做同样的事情吗?
let result = conversion(data[i], orig[i])
if (result !== undefined) {
console.log(result)
data[i] = result
}
在哪种情况下,我应该像第一个例子那样分配变量的值?
答案 0 :(得分:4)
正在做同样的事情吗?
是的,let foo; if ((foo = bar) === baz)
与let foo = bar; if (foo === baz)
在哪种情况下,我应该像第一个例子那样分配变量的值?
如果你想在代码高尔夫中做一个惊人的单线。
在循环条件下偶尔编写这样的内容非常有用,因此您不必重复代码,例如考虑
foo = bar();
while (false !== foo) {
// ..
foo = bar();
}
VS
while (false !== (foo = bar())) {
// ..
}
仅为if
执行此操作