函数内部的全局变量与外部相同声明名的全局变量优先级问题?

新手上路,请多包涵

<body>

<button class="btn1">1</button>
<button class="btn2">2</button>

<script>
    var button1 = document.querySelector('.btn1');

    button1.addEventListener('click', function () {
        num = 10;
        
    })

    var num = 0;

    

    var button2 = document.querySelector('.btn2');
    button2.addEventListener('click', function () {
        num++;
        console.log(num); //如果点击了button1,为11;如果不点击button1,为1
    })

</script>

</body>

请问为什么当点击button1之后,button2里的num++的num值就在num=10的基础上开始增加了,而不是在num=0的基础上增加?var num=0也是全局变量,num=10也是全局变量,但是为什么函数内部的全局变量就更有优先级呢?以及这端代码的预解析可以拆解一下吗?感谢大神们!

阅读 2.4k
1 个回答

没有你所谓“优先级”。
所有的 num 都是 同一个 变量。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题