var、fucntion关键字优先级问题

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

console.log(a);      // undefined

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变量由函数变成了数值类型

*/

 

posted @ 2019-04-09 10:26  笨鸟不会飞~~  阅读(235)  评论(0编辑  收藏  举报