声明返回其变量值的技术限制是什么?

时间:2017-07-29 21:40:30

标签: javascript

为什么声明返回undefined?他们有任何技术原因吗?

如果声明返回了它们变量的值的好处,那就是我可以编写类似的东西:

while((var next = generator.next())) doSomething(next);

由于规范,我需要在它不属于的范围内声明下一个。

(注意:有什么地方可以更好地提出这个问题吗?这个问题可能存在争议,而不仅仅是技术问题。)

2 个答案:

答案 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"`