函数与变量同名

function a(){ 
   
};
var a = 1;
console.log(a);

输出的结果是:1
相当于

var a;
function a(){ 

};
a = 1;
console.log(a);
function a(){ 
    
};
var a;
console.log(a);

输出结果是:function a()

function a(){ 
    console.log(1)
};
function a(){ 
    console.log(2)
};
console.log(a);

输出结果是: function a( ){
        console.log(2)
       };
分析以上代码总结:

  • 函数声明会置顶
  • 变量声明也会置顶
  • 函数声明比变量声明更置顶,也就是与函数声明同名的变量声明会无效
  • 同名的函数声明后面的会覆盖前面的
  • 同名的变量声明后面的会被忽略
  • 变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容