猿问

关于js函数问题求教

var a=function(){

alert(1);

  }; 

function a(){

alert(2);

}

a();

为什么弹1?呢

qq_蚂蚂蚂蚁怎么了_0
浏览 1339回答 3
3回答

qq_冲哥_0

JS 函数声明提前,解析时函数声明自动提前到执行环境的顶部。实际上执行顺序是function a(){alert(2);}var a=function(){alert(1);  }; 弹1

乱舞的旋律

var  和function  声明的都会“提升”,就是 他们会在执行已经存在,var 声明的虽然存在了  但还没赋值,所以 一开始 var a=function(){ alert(1);  }; 是undefined   后来function a(){ alert(2); }执行a()前被赋值了a=function(){ alert(1);  }; 所以是1

Its_forever

你现在这样就是弹出的1啊。或者:var a=function(){ alert(1);   };  function a1(){ alert(2); } a(); a1();这样,先弹1,再弹2.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答