JavaScript之函数作用域
一丶我们公司里在做项目时常会有一个项目好几个人一起做的情况,所以变量的引用就变得尤为重要常用的有局部变量和全局变量
var a = 2;
function foo() { // <– 添加这一行
var a = 3;
console.log( a ); // 3
} // <– 以及这一行
foo(); // <– 以及这一行
console.log( a ); // 2
该函数中var a=2作用于全局,var a=3仅仅作用于foo函数 ,我们在使用全局变量时要引起注意的是该变量是否还影响到其他成员函数。
二丶为避免会影响到其他成员函数我们经常采用的方式除对变量作用域进行严格控制外,还有直接讲函数当做函数表达式进行处理
先上代码:
var a = 2;
(function foo(){ // <– 添加这一行
var a = 3;
console.log( a ); // 3
})(); // <– 以及这一行
console.log( a );
这段代码我们可以看出明显不同是function前面加了一个括号,千万不要小看这个简单的括号,正是因为括号的作用我们才可以直接讲函数当做表达式来使用,表达式有一个比较重要的特点,那就是当程序执行到该表达式时表达式被直接运算,所以这种写法能让函数在不需要被调用的前提下直接执行,这样操作可完美使用局部变量,使内容高度独立