为了账号安全,请及时绑定邮箱和手机立即绑定

函数声明提前的小问题

函数声明提前的小问题

犯罪嫌疑人X 2019-03-06 17:12:46
var get = function () {    console.log("get1");}function get() {    console.log("get2");}get()//输出get1这里为什么输出get1
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

我的理解应该是这样,希望能对你有所帮助:


var get; //变量声明提升

function get() {  //函数声明提升到顶部

    console.log("get2");

}

get = function () { //变量赋值依然保留在原来的位置

    console.log("get1");

}

get();  //最终输出:get1


查看完整回答
反对 回复 2019-03-09
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

由于函数提升和变量提升,执行的代码是这样的。


function get() {

    console.log("get2");

}

var get;

get = function () {

    console.log("get1");

}

get();

函数提升比变量提升优先级高,第一个函数声明被第二个同名函数表达式覆盖了, 所以打印get1.


查看完整回答
反对 回复 2019-03-09
  • 2 回答
  • 0 关注
  • 524 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信