- 方法一:foo在进入函数执行上下文开始执行代码的时候,foo是undefined的,知道执行完var foo = function () { }这句,foo才会得到赋值;
- 方法二:在进入函数执行上下文开始执行代码的时候,foo已经是一个function了。
function hereOrThere() { //function statement return 'here'; } function hereOrThere() {//申明前置了,但因为这里的申明和赋值在一起,所以一起前置 return 'there'; } alert(hereOrThere()); // alerts 'there'
var hereOrThere = function() { // function expression return 'here'; }; alert(hereOrThere()); // alerts 'here' hereOrThere = function() { return 'there'; };