为什么结果是不同的,当我把变量内部/外部的函数?



为什么当我把变量放在函数的内部/外部时,结果似乎不同?

函数外的可变声音:

var sound = "" ; 
var laugh = function(num) {
for (var x = 0 ; x < num ; x++) {
sound = sound + "ha" ;  
}
sound = sound +"!"; 
return sound; 
}
console.log(laugh(3)) 

函数内部的可变声音


var laugh = function(num) {
for (var x = 0 ; x < num ; x++) {
var sound = "" ; 
sound = sound + "ha" ;  
}
sound = sound +"!"; 
return sound; 
}
console.log(laugh(3)) 

在函数内部声明变量的方式,它总是以空字符串开始,因为在循环的每次迭代中都要重置它。

如果你想在函数内声明变量,你必须在for循环外声明。

var laugh = function(num) {
var sound = "" ; //here is where you should declare it
for (var x = 0 ; x < num ; x++) {
sound = sound + "ha" ;  
}
sound = sound +"!"; 
return sound; 
}
console.log(laugh(3))

最新更新