JavaScript中函数声明优先于变量声明的实例

声明 时间:2018-02-15 阅读: 我要投稿

  复制代码 代码如下:

  var a; // 声明一个变量,标识符为a

  function a() { // 声明一个函数,标示符也为a

  }

  alert(typeof a);

  显示的是“function”,即function的优先级高于var。

  有人觉得这是代码顺序执行的原因,即a被后执行的funcion覆盖了。好,将它们调换下。

  复制代码 代码如下:

  function a() {

  }

  var a;

  alert(typeof a);

  结果仍然显示的是“function”而非“undefined”。即函数声明优先于变量声明。

  我们把代码稍作修改,声明a时同时赋值。

  复制代码 代码如下:

  function a() {

  }

  var a = 1; // 注意此处

  alert(typeof a);

  这时显示的是“number”却不是“function”了,这相当于

  复制代码 代码如下:

  function a() {

  }

  var a;

  a = 1; // 注意此处

  alert(typeof a);

  即把“var a = 1”拆分为两步。 a被重新赋值了,自然是最后的那个值。

相关推荐