js中常见的两种函数声明方式如下:
// 函数表达式 var f = function() { console.log(1); } // 直接声明 function f (){ console.log(2); }
第一种方式,函数只能在声明之后调用。因为这种方式声明的函数,是在函数运行的阶段才赋值给变量 f 的;
第二种方式,函数可以在声明函数的作用域内任一地方调用。因为这种方式,是在函数解析阶段赋值给标识符 f .
值得注意的是,当同时使用这两种方式声明同一个函数名,最终执行的是函数表达式声明的函数。
承接上面的代码:
// 函数表达式 var f = function() { console.log(1); } // 直接声明 function f (){ console.log(2); } f(); // 1