当变量名和函数名相同的时候,标示符是函数还是变量

    function change() {
        alert(typeof fn) // function
        function fn() {
        }
        var fn
    }
    change()

为什么不是undefined?

阅读 6.5k
1 个回答

在js中函数的声明 比变量优先级要高
并且定义过程不会被变量覆盖 除非是赋值

//你的代码相当于
  function change() {
         function fn() {
        }
        var fn;
        alert(typeof fn) // function 不会被覆盖
        fn=1;
         alert(typeof fn) // 1   会覆盖
    }
    change()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题