在JavaScript中使用var重新定义局部变量

Sen*_*pie 10 javascript var

关于JavaScript和局部变量,我有一个相当普遍的问题.我的问题是以下内容之间有什么区别,如果有的话:

function bla
{
    var a = 2;   // local variable
    a = 3;       // the local variable a gets a new value

    // Would do the following line anything different 
    // (than simply asigning this value?)
    var a = 4;
}
Run Code Online (Sandbox Code Playgroud)

我想我不会得到两个名为a的局部变量.在其他语言中,这甚至是一个错误.那有什么用呢?

Que*_*tin 16

任何var在函数内的使用都会被提升.对同一范围内的同一变量的后续使用无效.

它与a = 4;单独的含义完全相同.

  • 以下是我的问题的答案:http://jsfiddle.net/U5Zdv/ =>它在IE10的性能方面完全没有区别 (5认同)
  • 重新定义变量是否有任何性能成本?我喜欢在if,for,while等中声明我的局部变量,以保持代码整洁和可读.这完全取决于个人品味(我知道变量的范围在函数内),我想确保它不会对性能产生负面影响. (3认同)