ฉันไม่สามารถเข้าใจได้ว่าทำไมตัวแปรต่าง ๆ จึงแปลกประหลาดเมื่อถูกประกาศภายในฟังก์ชั่น
ใน
first
ฟังก์ชั่นฉันประกาศด้วยlet
ตัวแปรb
และc
ด้วยค่า10 :b = c = 10;
ใน
second
ฟังก์ชั่นที่ฉันแสดง:b + ", " + c
และสิ่งนี้แสดงให้เห็นว่า:
10, 10
ใน
first
ฟังก์ชั่นฉันประกาศa
ด้วยค่า10 :let a = b = c = 10;
แต่ใน
second
ฟังก์ชั่นมันแสดงข้อผิดพลาด:ไม่พบตัวแปร:
a
ตอนนี้ใน
first
ฟังก์ชันฉันประกาศd
ด้วยค่า20 :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()
Dim Apple, Banana, Pear As Fruit
วิธีการและไม่Dim Apple / Dim Banana / Dim Pear As Fruit
Dim Apple As Fruit / ...
b
และc
ไม่ได้ขึ้นต้นด้วยvar
คำหลักa
และมีในท้องถิ่นเพื่อd
first