这是我的代码:
function func(){
for(i=0; i < 5; i++){
alert('B');
}
}
for(i=0; i < 5; i++){
func();
alert('A');
}
Run Code Online (Sandbox Code Playgroud)
我的预期是:BBBBBABBBBBABBBBBABBBBBABBBBBA
但收到的只是BBBBBA
我发现那是因为JS中存在函数范围,而不是块范围.我想知道的是如何保持这种行为.我的意思是强制阻止范围.否则很容易制造出令人讨厌的错误 - 例如在使用别人写的函数或你自己编写的函数时,但几个月前.
确保使用var i=0而不仅仅是i=0.否则,它会浮动到全局范围并被两个循环使用.
function func(){
for(var i=0; i < 5; i++){
alert('B');
}
}
for(var i=0; i < 5; i++){
func();
alert('A');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |