笔记-js高程-第七章 函数表达式

函数声明提高

定义函数有两种方式:函数

  • 函数声明
sayName("123");//123
function sayName(name){
    alert(name);
}
  • 函数表达式
sayName("123");//报错,该函数不存在
var sayName = function(name){
    alert(name);
};

上述代码出现不一样的执行结果,是由于函数声明的一个重要特征:函数声明提高,意思是函数声明会被提高到顶部,即首先读取函数声明。
与之相似的还有变量声明提高,即将变量的声明提高到顶部。code

var sayName = function(){
    alert(1);
};
function sayName(){
    alert(2);
}
sayName();//?

上述代码等价于:io

function sayName(){    //函数声明提高
    alert(2);
}
var sayName;//变量声明提高
sayName = sayName(){    //覆盖函数声明
    alert(1);
}
sayName();//1

注:函数声明提高先于变量声明提高,且不会被变量声明提高所覆盖。function

相关文章
相关标签/搜索