我应该声明JavaScript变量然后立即初始化吗?

时间:2015-04-16 06:43:01

标签: javascript

我是JavaScript新手,我想知道声明变量然后在声明后立即初始化是最佳做法。例如:

var x = 5 ;
var y = 6 ;

而不是:

var x , y ;

x = 5;
y = 6 ; 

2 个答案:

答案 0 :(得分:3)

如何实际声明变量是一个偏好问题。 如果您在彼此之后声明多个变量,则可以省略var关键字,而是使用逗号来表示"继续"该声明。

var x = 2,
    y = 3;

如果我在另一个变量中使用一个变量,我喜欢将声明和赋值分开以便于阅读。

var x = 2,
    y = x + 3;

VS

var x, y;
x = 2;
y = x + 3;

同样这只是一个偏好,因为javascript中的任何变量在声明后都可以使用 - 即使是在同一个var声明中。

重要的是要记住javascript中的变量具有函数作用域 - 不是其他语言中常见的块作用域(直到javascript的ES6 version可用)。



(function(){
  var x = 1;
	
  for (var i = 0; i < 10; i++) { 
    var x = i;
  }
	
  (function(){
    var x = 999;
  }());

  alert(x); // 9!
}());
&#13;
&#13;
&#13;

javascript guru Douglas Crockford recommends变量定义列在每个函数的顶部,以使程序员习惯于具有适当块范围的语言更加明显。

答案 1 :(得分:1)

如何做到这一点不会以任何方式影响执行,而只是一个关于可读性的问题。

如果您愿意申报,则单独分配,一定要这样做。

如果使用像var banana这样的局部范围变量,就像在类中一样,会对执行产生一些影响(但几乎没有)。

示例: 这可能更容易阅读,(但这是一个个人意见),需要更少的操作

var Foo = Class.reate();
Foo.prototype = {
    hoge : 1,
    fuga : 2,
    initialize : function(){
    }
};

比这个:

var Foo = Class.reate();
Foo.prototype = {
    hoge:null,
    fuga:null,
    initialize : function(){
        this.hoge = 1;
        this.fuga = 2;
    }
};