浙江爱信诺前端规范

JS规范 - 声明

变量的声明

尽管 JavaScript 语言并不要求在变量使用前先对变量进行声明。但我们还是应该养成这个好习惯。这样可以比较容易的检测出那些未经声明的变量,避免其变为隐藏的全局变量,造成隐患。

在函数的开始应先用var关键字声明函数中要使用的局部变量,注释变量的功能及代表的含义,且应以字母顺序排序。每个变量单独占一行,以便添加注释。这是因为JavaScript中只有函数的{}表明作用域,用var关键字声明的局部变量只在函数内有效,而未经var声明的变量则被视为全局变量。

							var val1  = 'a'; 
							var val2  = 'b'; 
							function test(){ 
							    var valb = 'c'; 
							    alert('val1=' + val1); //输出:val1=a
							    val2 = 'd'; 
							    alert('val2=' + val2); //输出:val2=d
							} 
							test(); 
							alert('val1=' + val1); //输出:val1=a
							alert('val2=' + val2); //输出:val2=d
							

从上例的输出惊奇地发现,用var声明过的变量val1和没有声明的变量val2是有区别的。特别需要注意的是,在函数内部用var声明的变量为局部变量,这样可以有效地避免因局部变量和全局变量同名而产生的错误。

函数的声明

函数也应在调用前进行声明,内部函数应在var声明内部变量的语句之后声明,可以清晰地表明内部变量和内部函数的作用域。

							var val = 1; 
							function test(){ 
							    var val = 2; 
							    function inner(){ 
								    alert('val=' + val); 
							    } 
							    inner(); 
							} 
							test();
							inner();
							

从上例的输出可以看出,inner()函数仅在test()函数的内部生效,局部变量val对内部函数的作用域生效。这样的编码方式使得变量和函数的作用域变得清晰。