情况1:使用var关键字定义的变量优先被声明

console.log(a);      // undefined

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

var a = 20;

/*

  var a =20;

    (1)声明变量a --  优先被执行,此刻的值是undefined

    (2)给变量a赋值,等赋值语句执行,进行赋值,此刻的值是20

*/

 

情况2:使用fucntion关键字定义的函数,优先被执行

var test = 20;

function test(){

  console.log("I can fly");

}

test();      // test is not a fucntion

/*

执行过程:(1)var优先声明,声明变量test,此刻test的值为undefined

     (2)function优先定义,此刻test变为一个函数

     (3)程序顺序执行,test = 20,执行赋值操作,test变量由函数变成了数值类型

*/

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄