一,dom01
function fn() {
let a = 1, b = 1;
return b;
}
fn();
typeof a;
typeof b;
1.在fn()作用域中用let声明了变量a并赋值
2.中间用逗号隔开表示变量b也是用let声明并赋值;
3.这时a,b都是局部变量,当在函数外面访问判断a,b的数据类型肯定就是undefined了!
// 答案
console.log(typeof a); // undefined
console.log(typeof b); // undefined
二,dom02
function fn() {
let a = b = 1;
return b;
}
fn();
typeof a;
typeof b;
1.在fn()作用域中用let声明了变量a,这时的a是局部变量;
2.紧接着后面的b就是全局变量了,因为在fn()中或者全局作用域中都没有声明变量b,let声明的只是变量a;
3.此时JavaScript将表达式 b = 1解释为window.b = 1;
4.故a是一个局部变量在函数外部不可用,而b是一个全局变量!
// 答案
console.log(typeof a); // undefined
console.log(typeof b); // number