除了可读性......在效率和/或功能方面,我不清楚将声明放置在外部(我的实践)或循环内部(在其他 SO 帖子中看到)之间的区别。或者就此而言,为什么要代码声明?这里有一些退化的例子......下面有更多评论。
A1:
var x;
for (i=0; i<10; i++){
x = i;
}
A2:
for (i=0; i<10; i++){
var x = i;
}
B1:
var i;
for (i=0; i<10; i++){
}
B2:
for (var i=0; i<10; i++){
}
C1:
var x;
var y;
C2:
var x, y;
除了可读性...我怀疑 B1 和 B2 之间以及 C1 和 C2 之间没有区别,但对 A1 和 A2 之间的效率或功能差异持怀疑态度。另外,除了在函数中使用声明来消除(?)与同名全局变量的可能冲突之外,我不确定声明有什么优势。
编辑:添加了几个分号
编辑:第一句清晰度,将功能更改为功能
编辑:在下面添加一些代码以帮助我在下面发表评论编辑:评论
<!doctype html>
<html>
<head>
<script type='text/javascript'>
var w = (function(){ // wrapper
alert('init');
function p(){ // private
alert('p');
w.b(); //needs prefix
}
return{
a: function(){ // public
alert('a');
p();
w.b(); // needs prefix
},
b: function(){ // public
alert('b');
}
};
})(); // execute immediately
</script>
<script type="text/javascript">window.onload=w.a;</script>
</head>
<body>
sequence of alerts will be 'init' 'a' 'p' 'b'
</body>
</html>