1. 单一 var 模式:
在函数体的最上部只使用一个 var 声名变量,好处:
a) 只在一个地方提供函数中使用的所有的变量
b) 阻止因变量没有声名就被使用所引起的逻辑错误
c) 能够帮助你想到要声名变量,因此可以最小化全局变量
d) 减少代码量
样式:
function func() {
var a = 1,
b = 2,
sum = a + b,
myobject = {},
i,
j;
// function body...
}
使用一个var 声名多个变量,多个变量间使用逗号隔开; 在声名变量的同时又赋予了初值。当然也可以通过这种方式来做些实际的工作。
function updateElement() {
var el = document.getElementById("result"),
style = el.style;
// do something with el and style...
}
在 JavaScript 中可以在任何地方使用多个 var ,他们实际上和在函数体最上部声名是一样的。这种行为叫“ hoisting ”(提升)。当一个变量是先使用,后声名时,就会引起一些错误。
// antipattern
myname = "global"; // global variable
function func() {
alert(myname); // "undefined"
var myname = "local";
alert(myname); // "local"
}
func();
在第一个alert 时, myname 没有定义,因此函数很可能看到了全局的 myname ,但事实上不是这么工作的。因为 myname 被重新定义为局部变量。所有的变量都被提升到函数体的最上部。
上边的代码和下边的是一样的:
myname = "global"; // global variable
function func() {
var myname; // same as -> var myname = undefined;
alert(myname); // "undefined"
myname = "local";
alert(myname); // "local"
}
func();
JavaScript 函数变量声明最佳实践
本文探讨了JavaScript中函数内部变量声明的最佳实践,包括单一var模式的优势、多个var声明的样式、提升行为以及避免全局变量的方法。
 变量声名&spm=1001.2101.3001.5002&articleId=82070381&d=1&t=3&u=abcf16cb26b94c0f805949eb3f5749dd)
172

被折叠的 条评论
为什么被折叠?



