首页 > javascript 变量提升的问题

javascript 变量提升的问题

function ad(a){
  var a ;
  console.log(a);
}
ad(3)

为什么不是输出 undefined


因为命名重复var a;会被忽略。


  1. 使用var语句多次声明一个变量不仅是合法的,而且也不会造成任何错误.

  2. 如果重复使用的一个声明有一个初始值,那么它担当的不过是一个赋值语句的角色.

  3. 如果重复使用的一个声明没有一个初始值,那么它不会对原来存在的变量有任何的影响.
    很显然你的符合第三点。


function ad(a){
  var a = "" ;
  console.log(a);
}
ad(3)

undefined表示“未定义”,所以会查找父域,父域值是参数值。

【热门文章】
【热门文章】