Jslint变量是否已经定义在一个单独的范围内?

Bre*_*nan 3 javascript jslint

使用以下代码,JsLint警告y已在第二个块中定义.我经常这样做,并且不认为它是语法错误,因为变量是在不同的块中定义的.

我是否真的应该使用不同的变量名称,即使它位于不同的块中?范围是由if语句的代码块定义还是仅作用于功能块的范围?

function x() {
  if (condition1) {
    var y = 0;
    // use y
  }
  if (condition2) {
    var y = 20;
    // use y
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 8

宣布一次

function x() {
    var y;
    if (condition1) {
        y = 0;
    }
    if (condition2) {
        y = 20;
    }
}
Run Code Online (Sandbox Code Playgroud)

JS将来会阻止范围界定,但它尚未得到广泛实施.