1.函数声明和函数表达式
foo();//正常运行,函数声明的提升,因为foo在代码运行前就被创建啦
function foo(){};
foo();//出错,赋值语句只在运行时执行,此时的foo为 undefined var foo=function(){};
2.命名函数的赋值表达式
var foo = function bar() { bar(); // 正常运行,函数名在函数内总是可见的 } bar(); // 出错:ReferenceError,bar已经赋值给了foo
liliy-w 2018-05-08 17:20 原文
1.函数声明和函数表达式
foo();//正常运行,函数声明的提升,因为foo在代码运行前就被创建啦
function foo(){};
foo();//出错,赋值语句只在运行时执行,此时的foo为 undefined var foo=function(){};
var foo = function bar() { bar(); // 正常运行,函数名在函数内总是可见的 } bar(); // 出错:ReferenceError,bar已经赋值给了foo