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: }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }