为什么我从以下代码中得到两个不同的结果。我正在做的唯一更改是将值传递给函数,在第一个代码中,我将全局变量“count”的值设为10,在第二个代码中,全局变量(“count”)值更改为30。
function addTen(count) {
count = count + 20;
return count;
}
var count = 10
var result = addTen(count);
console.log(count); //10
console.log(result); //30
function addTen(num) {
count = num + 20;
return count;
}
var count = 10
var result = addTen(count);
console.log(count); //30
console.log(result); //30
答案 0 :(得分:0)
在你的第二个函数中,语句
count = num + 20;
分配给全局变量(它是范围内唯一的count
)。要使其仅为函数范围的局部变量,而不影响全局变量,请使用
var count = num + 20;
在第一个函数中,参数count
隐式声明了这样一个局部变量,遮蔽了同名的全局变量。