关于方法名和变量重名的问题

如下总结仅我的想法,有误请指出javascript

一、普通状况

//----------------------------------------
    var b = 10;
    function b() {
    
    }
    console.log(b);//输出10
    //----------------------------------------
    var a;
    function a(){

    }
    console.log(a);//输出a方法
    //----------------------------------------
    function c(){

    }
    var c;
    console.log(c);//输出c方法
复制代码
  • 总结 1: 不只变量声明提高,函数声明也会提高,在变量不赋值的状况下,函数声明高于变量声明

二、特殊状况(自执行)

var b = 10;
(function b() {
   b = 20 //这个时候的b就已是b函数了,而不是外面的b
   console.log(b); //输出函数b
})()
console.log(b);//输出10
复制代码
  • 总结 2:也遵循总结1,自执行函数内部有本身的做用域,(在执行的时候,给本身赋值没有效果/b=20未生效)
相关文章
相关标签/搜索