1.判断a b的类型和输出值
1 function foo(){ 2 let a = b = 0; 3 a++; 4 return a; 5 } 6 7 foo(); 8 9 typeof a;// =>??? 10 typeof b;// =>???
问题主要是 函数里面的第一行 连续赋值 let a = b = 0; 这行代码实际上创建了一个全局变量b 和 一个局部变量 a , 都初始化为0, 因为a是局部变量 所以在函数外面调用是找不到的 类型为undefined, 而b实际上是隐形的全局变量window.b 所以在函数外面调用也是找的到的 b的类型是number, b的类型是number. 这就是无意创建了全局变量.