在测试条件内为变量赋值是否可以接受:
var word;
while (word = words.pop()) {
// other code
}
而不是在作为语句执行的一部分评估条件之后:
var word;
while (words.pop()) {
word = words.pop();
// other code
}
哪个更好?
答案 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);
}
那就是说,测试条件就是这样:测试一个条件。
如果你养成习惯,它不会让你的代码更容易阅读。