首页 > 代码库 > javascript的hoisting机制

javascript的hoisting机制

javascript解释器中存在一种变量声明被提升(hoisting)的机制,即变量(函数)的声明会被提升到作用域的最前面。即使把声明代码写在最后面。

 alert(foo);    //function foo(){}
 alert(bar);   //undefined

 var bar = function(){};
 function foo(){};

 alert(foo);   //function foo(){}
 alert(bar);  //function bar(){}

从上例也能看出函数声明和函数表达式的不同的一个地方。

在javascript中也要注意另外一个变量和函数重名的问题:

function foo(){
     //body    
}

foo = 5;