函数的两种声明方式

118 阅读1分钟

函数有两种声明的方式

一种是直接在全局作用域中声明函数,因为函数是一等公民,所以会提升变量。

fn();//输出为a
function fn() {
  console.log('a');
}

第二种是定义好函数后赋值给另外一个变量,这时候,只有变量是提升的,函数还是“留在原地”,所以在写代码之前调用函数会报错,而输出这个变量,则会得到undefined。

console.log(fn);//undefined
fn();//报错,fn不是一个function
var fn = function () {
  console.log('a');
};