为什么声明返回undefined?他们有任何技术原因吗?
如果声明返回了它们变量的值的好处,那就是我可以编写类似的东西:
while((var next = generator.next())) doSomething(next);
由于规范,我需要在它不属于的范围内声明下一个。
(注意:有什么地方可以更好地提出这个问题吗?这个问题可能存在争议,而不仅仅是技术问题。)
答案 0 :(得分:3)
这个问题与Value returned by the assignment重复,虽然除了之外没有太多答案,因为它已被指定为(多么令人失望)。 var
不是表达式的一部分。
但是既然你问了一个while
循环,我想提供这个替代方案:
for(let next; next = generator.next();) doSomething(next);
答案 1 :(得分:1)
我需要在它不属于的范围内声明下一个。
您可以使用块范围来执行任务,其中先前定义的变量声明将保留在块范围之外分配的原始值
const next = "abc";
const doSomething = prop => console.log(prop);
{
let next = 10;
while (next = --next) doSomething(next)
}
console.log(next); // `"abc"`