Lv.8 JavaScript Let

JavaScript Let ตัวแปรที่กำหนดด้วยคีย์เวิร์ด let ไม่สามารถประกาศชื่อซ้ำได้

ตัวแปรที่ประกาศด้วยคีย์เวิร์ด let ไม่สามารถประกาศชื่อซ้ำในบล็อกนั้นๆได้

ตัวแปรที่ประกาศด้วยคีย์เวิร์ด let ต้องประกาศก่อนใช้งานเสมอ

ตัวแปรที่ประกาศด้วยคีย์เวิร์ด let เป็น Block Scope

let x = "Theethawat Chetjeerasioon";

let x = 0;

// Syntax Error นะ  เพราะตัวแปร x ได้ถูกประกาศไปแล้ว

แต่ถ้าต้องการกำหนดค่าให้กับตัวแปรเดิมให้ใช้คีย์เวิร์ด var ในการประกาศตัวแปร

var x = "Theethawat Chetjeerasioon";

var x = 0;

JavaScript Let ใน Block Scope

ตั้งแต่ ES6 (2015) JavaScript มีเพียง Global Scope และ Function Scope

คีย์เวิร์ด let และ const ไม่สามารถใช้นอกบล็อกได้

{
  let x = 55;
}
// x ไม่สามารถใช้นอกบล็อกได้ เพราะเราประกาศ x ด้วยคีย์เวิร์ด let

แต่ถ้าต้องการใช้ x นอกบล็อดด้วย ก็ให้ประกาศตัวแปร x ด้วยคีย์เวิร์ด var แทน

{
  var x = 55;
}

การประกาศตัวแปรใหม่

การประกาศตัวแปรใหม่โดยใช้คีย์เวิร์ด var อาจสร้างปัญหาให้กับเราได้ ต้องดูดีๆ ก่อนจะประกาศตัวแปรด้วยคีย์เวิร์ด var

var x = 55;
// x มีค่าเท่ากับ 55

{
var x = 77;
// x มีค่าเท่ากับ 77
}

// ถ้าเราเรียกใช้ตัวแปร x ตรงนี้ x จะมีค่าเท่ากับ 77 นะ เพราะเราได้กำหนดค่าใหม่ให้กับตัวแปร x แล้ว

เราสามารถแก้ปัญหานี้ด้วยการใช้คีย์เวิร์ด let

var x = 55;
// x มีค่าเท่ากับ 55

{
let x = 77;
// x มีค่าเท่ากับ 77
}

// ถ้าเราเรียกใช้ตัวแปร x ตรงนี้ x จะมีค่าเท่ากับ 55

การประกาศซ้ำ

สามารถประกาศซ้ำที่ไหนก็ได้ด้วยคีย์เวิร์ด var

var x = 55;
// x เท่ากับ 55

var x = 77;
// x เท่ากับ 77

คีย์เวิร์ด let ไม่สามารถประกาศตัวแปรชื่อซ้ำในบล็อกเดียวกันได้

var x = 55;    // ทำได้
let x = 77;    // ทำไม่ได้

{
let x = 55;    // ทำได้
let x = 77;     // ทำไม่ได้
}

{
let x = 55;    // ทำได้
var x = 77;    // ทำไม่ได้
}

การประกาศตัวแปรใหม่ด้วยคีย์เวิร์ด let ในบล็อกอื่นๆ

let x = 55;    // ทำได้

{
let x = 77;    // ทำได้
}

{
let x = 99;    // ทำได้
}

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น

Top