为什么到这一步全局的a变成1了?
var a = 0;
if(true){
a = 1;
function a(){};
a = 21;
console.log(a) // 21
}
console.log(a); // 1
function a 有块级作用域的概念
你可以这样去理解
a = 1 变更的是 window.a 可以理解对吧
function a (){}走到这一步的时候 a相当于成了局部函数 可以理解么? 因为你在外部调函数内部的a是调不到的 这样说可以理解么?也就是说这个时候a已经变成了局部变量
a = 21 变更的实则 function a(){} 这样可以理解吗?
所以只是第一个a=1 变更了window.a
你好,是因为你这个方法影响了