1,变量包括全局变量和局部变量,局部变量只能在函数内部访问。如果函数传参和全局变量一样的话,即使是给全局变量赋值,这里会把全局变量当成局部变量的。
如:
1: var x='x';
2:
3: function fun(x){
4: x='a'; //此时x就是局部变量了
5: }
6:
7: fun();
8: console.log(x); // x
函数内的x是局部变量。
2,局部变量
如:
1: function fun3(){
2: var x='a'; // 局部变量,函数运行完就消失
3: }
4: fun3();
5: console.log(x); // x
此时x是局部变量,fun2函数运行完就消失了,所以x是x
3,全局变量
如:
1: function fun2(){
2: x='b';
3: }
4: fun2();
5: console.log(x); // b
此时在函数fun2运行时,x覆盖了全局变量
4,函数声明和函数表达式
1: var aa =1;
2: var method = function(){
3: aa = 2;
4: }
5: function method(){
6: aa = 3;
7: }
8:
9: method();
10: console.log(aa);// 2
第一个函数是函数表达式,第二个函数是函数声明。method的在执行时先执行函数声明,然后在执行函数表达式,所以表达式的值会覆盖函数声明的值。函数表达式必须得在定义之后访问,如果之前访问的话会报错。
如:
1: var aa =1;
2: method3();
3: var method3 = function(){
4: aa = 6;
5: }