การประกาศตัวแปรใน javascript นั้น เราใช้คำสั่ง var ตามด้วย ชื่อตัวแปร
แต่ Javascript ES6 ได้เพิ่ม การประกาศตัวแปรแบบ let มาด้วยในที่นี้จะอธิบายความแตกต่างระหว่างการประกาศตัวแปรระหว่าง let กับ var
function foo()
{
var x=0;
if(true)
{
var x = 1;
}
return x;
}
function bar()
{
let x=0;
if(true)
{
let x = 1;
}
return x;
}
alert(foo());//แจ้งเตือน 1
alert(bar());//แจ้งเตือน 0
สรุป
สำหรับ var
var x=0;
if(true)
{
var x = 1;
}
x ใน block if กับ x ภายนอกจะถือว่าเป็นตัวเดียวกัน
แต่สำหรับ let
let x=0;
if(true)
{
let x = 1;
}
x ใน block if กับ x ภายนอกจะถือว่าเป็นคนละตัวกัน