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

关于js函数问题求教

关于js函数问题求教

var a=function(){ alert(1);  }; function a(){ alert(2); }a();为什么弹1?呢
查看完整描述

3 回答

已采纳
?
qq_冲哥_0

TA贡献40条经验 获得超30个赞

JS 函数声明提前,解析时函数声明自动提前到执行环境的顶部。

实际上执行顺序是

function a(){

alert(2);

}

var a=function(){

alert(1);

  }; 

弹1

查看完整回答
2 反对 回复 2016-04-05
?
乱舞的旋律

TA贡献105条经验 获得超38个赞


var  和function  声明的都会“提升”,就是 他们会在执行已经存在,var 声明的虽然存在了  但还没赋值,

所以 一开始

var a=function(){

alert(1);

  }; 是undefined

  后来

function a(){

alert(2);

}

执行a()前被赋值了

a=function(){

alert(1);

  };

所以是1


查看完整回答
反对 回复 2016-04-06
?
Its_forever

TA贡献361条经验 获得超328个赞

你现在这样就是弹出的1啊。或者:

var a=function(){
alert(1);
  }; 
function a1(){
alert(2);
}
a();
a1();

这样,先弹1,再弹2.

查看完整回答
反对 回复 2016-04-05
  • 3 回答
  • 0 关注
  • 1338 浏览
慕课专栏
更多

添加回答

举报

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