Lv.9 JavaScript Const

JavaScript Const เป็นการกำหนดค่าคงที่

ตัวแปรที่ประกาศด้วยคีย์เวิร์ด const ไม่สามารถประกาศซ้ำได้

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

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

JavaScript Const การใช้งาน

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

const vat = 7;
vat = 3;      // Error
vat = vat + 5;   // Error

ตามกฎทั่วไปควรประกาศตัวแปรด้วย const เสมอ เว้นเสียแต่เราจะรู้ว่าค่าของ const จะเปลี่ยนไป หลังจากที่เราได้ประกาศตัวแปรไปแล้ว

ควรใช้ const เพื่อ

สร้าง Array ใหม่

สร้าง Object ใหม่

สร้าง Function ใหม่

สร้าง RegExp ใหม่

ค่าคงที่ของ Objects และ Arrays

คีย์เวิร์ด const ไม่ได้กำหนดค่าคงที่ แต่เป็นการกำหนดการอ้างอิงค่าคงที่

ด้วยเหตุนี้เราจึงไม่สามารถ

กำหนด Array คงที่ใหม่

กำหนด Objects คงที่ใหม่

แต่เราสามารถ

เปลี่ยนค่าคงที่ใน Array ได้

เปลี่ยนคุณสมบัติคงที่ของ Objects ได้

ค่าคงที่ใน Array

เราสามารถเปลี่ยนค่าอิลิเมนต์คงที่ใน Array ได้

// สร้าง Array คงที่
const cars = ["Toyota", "Isuzu", "NAVARA"];

// เปลี่ยนค่าอิลิเมนต์ใน Array
cars[0] = "Ford";

// เพิ่มอิลิเมนต์
cars.push("Chevrolet");

แต่เราไม่สามารถกำหนด Array ใหม่ ได้

// สร้าง Array คงที่
const cars = ["Toyota", "Isuzu", "NAVARA"];

// เพิ่มค่าของอิลิเมนต์
cars = ["Chevrolet", "Ford", "Honda"];    // ERROR

ค่าคงที่ใน Objects

เราสามารถเปลี่ยนค่าคงที่ใน Objects

// สร้าง Objects คงที่
const car = {type:"Hilux Vigo", model:"Champ", color:"white"};

// เปลี่ยนคุณสมบัติ
car.color = "black";

// เพิ่มคุณสมบัติ
car.owner = "Theethawat";

แต่เราไม่สามารถกำหนด Objects ใหม่ ได้

// สร้าง Objects คงที่
const car = {type:"Hilux Vigo", model:"Champ", color:"white"};

car = {type:"Isuzu", model:"D-Max", color:"red"};    // ERROR

Block Scope

การประกาศตัวแปรด้วยคีย์เวิร์ด const ถ้าพูดถึง Block Scope นั้นใช้เหมือนคีย์เวิร์ด let เลยครับ

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

{
const x = 77;
// x เท่ากับ 77
}

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

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

ใช้ var ประกาศตัวแปรกี่ครั้งที่ไหนก็ได้

var x = 1;     // ทำได้
var x = 2;     // ทำได้
x = 3;         // ทำได้

ไม่สามารถประกาศชื่อซ้ำ โดยใช้คีย์เวิร์ด let, const ใหม่

var x = 2;     // ทำได้
const x = 2;   // ทำไม่ได้

{
let x = 2;     // ทำได้
const x = 2;   // ทำไม่ได้
}

{
const x = 2;   // ทำได้
const x = 2;   // ทำไม่ได้
}

ไม่สามารถกำหนดตัวแปร const ใหม่ในขอบเขตเดียวกัน

const x = 2;     // ทำได้
x = 2;           // ทำไม่ได้
var x = 2;       // ทำไม่ได้
let x = 2;       // ทำไม่ได้
const x = 2;     // ทำไม่ได้

{
const x = 2;   // ทำได้
x = 2;         // ทำไม่ได้
var x = 2;     // ทำไม่ได้
let x = 2;     // ทำไม่ได้
const x = 2;   // ทำไม่ได้
}

สามารถประกาศตัวแปรใหม่ด้วย const ในขอบเขตอื่นหรือในบล็อกอื่นได้

const x = 2;       // ทำได้

{
  const x = 3;   // ทำได้
}

{
  const x = 4;   // ทำได้
}

ใส่ความเห็น

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

Top