ในปี 2015 JavaScript ได้เปิดตัวคำหลักใหม่ที่สำคัญ: const
กลายเป็นเรื่องปกติในการประกาศอาร์เรย์โดยใช้ const
:
const cars = ["Saab", "Volvo", "BMW"];
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p id="demo"></p>
<script>
const cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars;
</script>
</body>
</html>
อาร์เรย์ที่ประกาศด้วย const
ไม่สามารถกำหนดใหม่ได้:
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p>You can NOT reassign a constant array:</p>
<p id="demo"></p>
<script>
try {
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];
}
catch (err) {
document.getElementById("demo").innerHTML = err;
}
</script>
</body>
</html>
คำหลัก 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");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p>Declaring a constant array does NOT make the elements unchangeable:</p>
<p id="demo"></p>
<script>
// Create an Array:
const cars = ["Saab", "Volvo", "BMW"];
// Change an element:
cars[0] = "Toyota";
// Add an element:
cars.push("Audi");
// Display the Array:
document.getElementById("demo").innerHTML = cars;
</script>
</body>
</html>
คำหลัก 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 |
ตัวแปร JavaScript const
จะต้องได้รับการกำหนดค่าเมื่อมีการประกาศ: <p>ความหมาย: อาร์เรย์ที่ประกาศด้วย const
จะต้องเริ่มต้นเมื่อมีการประกาศ
การใช้ const
โดยไม่เริ่มต้นอาร์เรย์ถือเป็นไวยากรณ์ ข้อผิดพลาด:
สิ่งนี้จะไม่ทำงาน:
const cars;
cars = ["Saab", "Volvo", "BMW"];
อาร์เรย์ที่ประกาศด้วย var
สามารถเริ่มต้นได้ตลอดเวลา
คุณสามารถใช้อาร์เรย์ก่อนที่จะประกาศได้:
นี่เป็นเรื่องปกติ:
cars = ["Saab", "Volvo", "BMW"];
var cars;
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>JavaScript Hoisting</h2>
<p id="demo"></p>
<script>
cars = ["Saab", "Volvo", "BMW"];
var cars;
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
อาร์เรย์ที่ประกาศด้วย const
มี Block Scope
อาร์เรย์ที่ประกาศในบล็อกไม่เหมือนกับอาร์เรย์ที่ประกาศนอกบล็อก:
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Saab"
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>Declaring an Array Using const</h2>
<p id="demo"></p>
<script>
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Saab"
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
อาร์เรย์ที่ประกาศด้วย var
ไม่มีขอบเขตบล็อก:
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Toyota"
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>Declaring an Array Using var</h2>
<p id="demo"></p>
<script>
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Toyota"
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับขอบเขตบล็อกได้ในบท: ขอบเขต JavaScript
การประกาศอาร์เรย์ที่ประกาศด้วย var
อีกครั้งจะได้รับอนุญาตทุกที่ในโปรแกรม:
var cars = ["Volvo", "BMW"]; // Allowed
var cars = ["Toyota", "BMW"]; // Allowed
cars = ["Volvo", "Saab"]; // Allowed
การประกาศซ้ำหรือการกำหนดอาร์เรย์ใหม่เป็น const
ในขอบเขตเดียวกันหรือใน ไม่อนุญาตให้ใช้บล็อกเดียวกัน:
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
{
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
}
การประกาศซ้ำหรือการกำหนดอาร์เรย์ const
ที่มีอยู่ในขอบเขตเดียวกันหรือใน ไม่อนุญาตให้ใช้บล็อกเดียวกัน:
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
}
อนุญาตให้ประกาศอาร์เรย์อีกครั้งด้วย const
ในขอบเขตอื่นหรือในบล็อกอื่น ได้รับอนุญาต:
const cars = ["Volvo", "BMW"]; // Allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
}
{
const cars = ["Volvo", "BMW"]; // Allowed
}
หากต้องการข้อมูลอ้างอิง Array ฉบับสมบูรณ์ โปรดไปที่:
การอ้างอิงอาร์เรย์ JavaScript ที่สมบูรณ์
ข้อมูลอ้างอิงประกอบด้วยคำอธิบายและตัวอย่างของ Array ทั้งหมด คุณสมบัติและวิธีการ