函数声明提前的小问题

var get = function () {

    console.log("get1");

}

function get() {

    console.log("get2");

}

get()

//输出get1

这里为什么输出get1


犯罪嫌疑人X
浏览 525回答 2
2回答

元芳怎么了

我的理解应该是这样,希望能对你有所帮助:var get; //变量声明提升function get() {  //函数声明提升到顶部    console.log("get2");}get = function () { //变量赋值依然保留在原来的位置    console.log("get1");}get();  //最终输出:get1

MMMHUHU

由于函数提升和变量提升,执行的代码是这样的。function get() {    console.log("get2");}var get;get = function () {    console.log("get1");}get();函数提升比变量提升优先级高,第一个函数声明被第二个同名函数表达式覆盖了, 所以打印get1.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript