JS中的变量及注意点

 参考:

  http://www.blogjava.net/baoyaer/articles/105921.html

  http://zhidao.baidu.com/link?url=8swl8GsS3UlFcNqxXBPI0LdpIzKx0WSxP-idnhA9oCZElLY8NMwAsiIljfyRuzp0lrBeX72SoufdDUOHc0r5D_

程序:

 function printVar(v){
      document.write(v+ '<br>'); 
   }

   printVar("*****1******"); 
var var10 = 0;
printVar(var10 );

var var11 = 1;
function foo1()
{     
    printVar(var11 );           
    var var11 = 1;
}
foo1();

printVar("*****2******"); 


var20 = 0;
printVar(var20 );

var21 = 1;
function foo2()
{
    printVar(var21); 
    var21 = 1;
}
foo2();


printVar("****3*******"); 
var30 = 0;
printVar(var30 );

var31 = 1;
function foo3()
{
    printVar(var31); 
    var var31 = 1;
}
foo3();

printVar("****4*******"); 
var40 = 0;
printVar(var40 );

var41 = 1;
function foo4()
{
    printVar(var41); 
    var var41 = 4;
	printVar(var41); 
}
foo4();
printVar(var41); 

  输出:

*****1******
0
undefined
*****2******
0
1
****3*******
0
undefined
****4*******
0
undefined
4
1

  

总结:

1.如果变量均强制使用var,并且变量定义在前,使用在后的话,JS中的使用域很好理解,与其他语言没有差别。

2.如果内部未使用var,则程序会向上层查找变量定义;

3.如果在本层中先使用,后定义,变量将会undefined;(尤其要注意)

原文地址:https://www.cnblogs.com/malaya/p/3791493.html