避免使用逗号表达式和重复声明

时间:2014-06-19 10:56:15

标签: javascript syntax duplicate-detection

为了清理我的代码,我一直在关注Web Storm中的所有提示。以下duplicate declaration错误使我感到困惑。

在下面的代码中,是否需要var双重使用(或建议)来阻止全局变量? (或者我可以删除s中的第二个var

function run(x) {
    if(x == 5) {
        var s = 'Yes',
            bar = 1,
            baz = 2
    } else {
        var s = 'No',
            bar = 1,
            baz = 2
    }
    console.log(s);
}

此外,如果我删除else条件中的var,我会收到comma expression错误,表示我的代码可能过于聪明"。

书写

else {
    bar = 1,
    baz = 2
 }

我觉得语法不好

2 个答案:

答案 0 :(得分:3)

为此我会使用:

function run(x) {
  var s = (x === 5) ? 'Yes' : 'No';
  var bar = 1;
  var baz = 2;

  console.log(s);
}

您目前收到重复声明错误,因为变量属于同一范围。

答案 1 :(得分:1)

如果坚持使用原始代码,那么最干净的解决方案就是:

function run(x) {
    var s, bar, baz;

    if(x == 5) {
        s = 'Yes';
        bar = 1;
        baz = 2;
    } else {
        s = 'No';
        bar = 1;
        baz = 2;
    }
    console.log(s);
}