在JavaScript中为测试条件内的变量赋值

时间:2016-09-08 23:37:55

标签: javascript

在测试条件内为变量赋值是否可以接受:

var word;
while (word = words.pop()) {
// other code
}

而不是在作为语句执行的一部分评估条件之后:

var word;
while (words.pop()) {
  word = words.pop();
  // other code
}

哪个更好?

3 个答案:

答案 0 :(得分:0)

在第二种方法中,如果你有一个包含四个元素的数组(“ele1”,“ele2”,“ele3”,“ele4”),那么在while条件下它将弹出ele1然后将ele2分配给你的变量然后再次在条件中将弹出ele3并将ele4分配给您的变量, 第一种方法越好

答案 1 :(得分:0)

你不应该在条件中使用赋值来促使逻辑断言和赋值之间产生混淆。 =可以被误解为== 你的第二个代码不会起作用,因为它会弹出两次。在这种情况下应该这样写:

while (words.length > 0) {
  let word = word.pop();
  // other code 
}

答案 2 :(得分:0)

是的,您可以在条件中分配变量。

在您的示例中,word仍然可以在条件评估的范围块中使用。

while (word = words.pop()) {
    console.log(word);
}

那就是说,测试条件就是这样:测试一个条件。

如果你养成习惯,它不会让你的代码更容易阅读。