JavaScript全局变量值在函数值

时间:2017-06-07 08:03:36

标签: javascript

为什么我从以下代码中得到两个不同的结果。我正在做的唯一更改是将值传递给函数,在第一个代码中,我将全局变量“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

1 个答案:

答案 0 :(得分:0)

在你的第二个函数中,语句

count = num + 20;

分配给全局变量(它是范围内唯一的count)。要使其仅为函数范围的局部变量,而不影响全局变量,请使用

var count = num + 20;

在第一个函数中,参数count隐式声明了这样一个局部变量,遮蔽了同名的全局变量。