为什么在函数中使用 let 声明的某些变量在另一个函数中可用,而其他变量会导致引用错误?
我不明白为什么变量在函数内部声明时表现得如此奇怪。
-
在函数中,我用变量和值 10 声明:
first
let
b
c
b = c = 10;
在我显示的函数中:
second
b + ", " + c
这显示了:
10, 10
-
同样在函数 I 中,使用值 10 声明:
first
a
let a = b = c = 10;
但在函数中,它显示一个错误:
second
找不到变量:
a
-
现在在函数中,我用值 20 声明:
first
d
var d = 20;
但是在函数中,它显示与以前相同的错误,但变量为:
second
d
找不到变量:
d
例:
function first() {
let a = b = c = 10;
var d = 20;
second();
}
function second() {
console.log(b + ", " + c); //shows "10, 10"
try{ console.log(a); } // Rreference error
catch(e){ console.error(e.message) }
try{ console.log(d); } // Reference error
catch(e){ console.error(e.message) }
}
first()