是否有一种在条件(if)结构的条件语句中定义变量的有效方法?

时间:2015-02-13 02:09:20

标签: javascript scope variable-declaration

是否有一种在JavaScript中if语句条件下定义变量的简洁方法?例如:

var arr = [1,2,3];
console.log(len); // output is null, since it was never declared
if ((var len = arr.length) > 0) { // len  == 3
    // logic using variable 'len ' here
}

或者是唯一可以在条件语句之前声明并赋值len的方法吗?

2 个答案:

答案 0 :(得分:2)

如果您关注的是您编写的行数,您可以在声明arr的同一行声明len,例如:

var len, arr = [1,2,3];
console.log(len); 
if ((len = arr.length) > 0) { // len  == 3
    // logic using variable 'len ' here

    console.log(len); 
}

我个人避免在条件中设置值。条件不是设置变量的地方。它看起来像一个错误,它会导致错误,读取您的代码的人可能会错过在条件语句中设置变量。

祝你好运!

答案 1 :(得分:0)

基于@VictorJohnson在其他答案中的评论,我会声明我的变量如下

var arr = [1,2,3], len=arr.length;
console.log(len);             // len == 3
if (len > 0) {
    // logic using variable 'len ' here

    console.log(len); 
}

这消除了if块的可能混淆,并且仍然非常简洁