JavaScript Const
คำconst
หลักถูกนำมาใช้ใน
ES6 (2015 )
ตัวแปรที่กำหนดด้วยconst
ไม่สามารถประกาศซ้ำได้
ตัวแปรที่กำหนดด้วยconst
ไม่สามารถกำหนดใหม่ได้
ตัวแปรที่กำหนดด้วยconst
มี Block Scope
ไม่สามารถมอบหมายใหม่ได้
ไม่const
สามารถกำหนดตัวแปรใหม่ได้:
ตัวอย่าง
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
ต้องได้รับมอบหมาย
ตัวแปร JavaScript const
ต้องได้รับการกำหนดค่าเมื่อมีการประกาศ:
ถูกต้อง
const PI = 3.14159265359;
ไม่ถูกต้อง
const PI;
PI = 3.14159265359;
ควรใช้ JavaScript const เมื่อใด
ตามกฎทั่วไป ให้ประกาศตัวแปรด้วยเสมอconst
เว้นแต่คุณจะรู้ว่าค่าจะเปลี่ยนไป
ใช้const
เมื่อคุณประกาศ:
- อาร์เรย์ใหม่
- วัตถุใหม่
- ฟังก์ชั่นใหม่
- RegExp . ใหม่
วัตถุและอาร์เรย์คงที่
คีย์เวิร์ดconst
ทำให้เข้าใจผิดเล็กน้อย
ไม่ได้กำหนดค่าคงที่ กำหนดการอ้างอิงค่าคงที่
ด้วยเหตุนี้คุณจึงไม่สามารถ:
- กำหนดค่าคงที่ใหม่
- กำหนดอาร์เรย์คงที่ใหม่
- กำหนดวัตถุคงที่ใหม่
- เปลี่ยนองค์ประกอบของอาร์เรย์คงที่
- เปลี่ยนคุณสมบัติของวัตถุคงที่
แต่คุณทำได้:
อาร์เรย์คงที่
คุณสามารถเปลี่ยนองค์ประกอบของอาร์เรย์คงที่:
ตัวอย่าง
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
แต่คุณไม่สามารถกำหนดอาร์เรย์ใหม่ได้:
ตัวอย่าง
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
วัตถุคงที่
คุณสามารถเปลี่ยนคุณสมบัติของวัตถุคงที่ได้:
ตัวอย่าง
// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};
// You can change a property:
car.color = "red";
// You can add a property:
car.owner = "Johnson";
แต่คุณไม่สามารถกำหนดวัตถุใหม่ได้:
ตัวอย่าง
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; //
ERROR
รองรับเบราว์เซอร์
คำconst
หลักไม่ได้รับการสนับสนุนใน Internet Explorer 10 หรือรุ่นก่อนหน้า
ตารางต่อไปนี้กำหนดเบราว์เซอร์รุ่นแรกที่มีการสนับสนุนอย่างเต็มที่สำหรับconst
คำหลัก:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
บล็อกขอบเขต
การประกาศตัวแปรด้วยconst
จะคล้ายกับlet
เมื่อพูดถึงBlock Scope
x ที่ประกาศในบล็อกในตัวอย่างนี้ ไม่เหมือนกับ x ที่ประกาศนอกบล็อก:
ตัวอย่าง
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับขอบเขตการบล็อก ได้ในบทขอบเขต JavaScript
ประกาศซ้ำ
อนุญาตให้ประกาศตัวแปร JavaScript ใหม่var
ได้ทุกที่ในโปรแกรม:
ตัวอย่าง
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
ไม่ อนุญาตให้ประกาศซ้ำที่มีอยู่var
หรือlet
ตัวแปรconst
ในขอบเขตเดียวกัน:
ตัวอย่าง
var x = 2; // Allowed
const x = 2; // Not allowed
{
let x = 2; // Allowed
const x = 2; // Not allowed
}
{
const x = 2; // Allowed
const x = 2; // Not allowed
}
ไม่อนุญาตให้ กำหนดconst
ตัวแปรที่มีอยู่ในขอบเขตเดียวกันใหม่:
ตัวอย่าง
const x = 2; // Allowed
x = 2; // Not allowed
var x = 2; // Not allowed
let x = 2; // Not allowed
const x = 2; // Not allowed
{
const x = 2; // Allowed
x = 2;
// Not allowed
var x = 2;
// Not allowed
let x = 2;
// Not allowed
const x = 2; // Not allowed
}
อนุญาตให้ประกาศตัวแปรใหม่ด้วยconst
, ในขอบเขตอื่นหรือในบล็อกอื่น:
ตัวอย่าง
const x = 2; // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
รอก Const
ตัวแปรที่กำหนดด้วยvar
จะถูกยกขึ้นด้านบนและสามารถเริ่มต้นได้ตลอดเวลา
ความหมาย: คุณสามารถใช้ตัวแปรก่อนที่จะมีการประกาศ:
ตัวอย่าง
ไม่เป็นไร:
carName = "Volvo";
var carName;
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการติตตั้ง ให้ศึกษาบทที่JavaScript Hoisting
ตัวแปรที่กำหนดด้วยconst
จะถูกยกขึ้นไปด้านบนด้วย แต่ไม่ได้เริ่มต้น
ความหมาย: การใช้const
ตัวแปรก่อนที่จะประกาศจะส่งผลให้
ReferenceError
:
ตัวอย่าง
alert (carName);
const carName = "Volvo";