Const JavaScript
- Halaman Sebelumnya Let JS
- Halaman Berikutnya Operator JS
ECMAScript 2015
ECMAScript 2015 memperkenalkan dua kata kunci JavaScript yang penting:let
dan const
.
Dengan const
Variabel yang didefinisikan dengan let
Variabel yang didefinisikan mirip, tetapi tidak dapat diubah ulang:
Contoh
const PI = 3.141592653589793; PI = 3.14; // Juga akan keluar kesalahan PI = PI + 10; // Juga akan keluar kesalahan
scope blok
discope blokdalam blok const
Variabel yang di deklarasikan dengan let
Variabel mirip.
Dalam contoh ini, x di deklarasikan di blok, berbeda dengan x yang di deklarasikan di luar blok:
Contoh
var x = 10; // Di tempat ini, x adalah 10 { const x = 6; // Di tempat ini, x adalah 6 } // Di tempat ini, x adalah 10
Kamu dapat menemukan di bab sebelumnya Let JavaScript Ditemukan lebih banyak pengetahuan tentang scope blok di sekolah menengah.
saat deklarasinya
JavaScript const
Variabel harus diisi nilai saat deklarasinya:
Salah
const PI; PI = 3.14159265359;
Benar
const PI = 3.14159265359;
Bukan konstan yang sebenarnya
Kata kunci const
Terdapat kesalahan penalaran.
Itu belum mendefinisikan nilai konstan. Itu mendefinisikan referensi konstan ke nilai.
Jadi, kita tidak dapat mengubah nilai asli konstan, tetapi kita dapat mengubah properti objek konstan.
Nilai asli
Jika kita menugaskan nilai asli ke konstan, kita tidak dapat mengubah nilai asli:
Contoh
const PI = 3.141592653589793; PI = 3.14; // Juga akan keluar kesalahan PI = PI + 10; // Juga akan keluar kesalahan
Objek konstan dapat diubah
Kamu dapat mengubah properti objek konstan:
Contoh
// Kamu dapat membuat objek const: const car = {type:"porsche", model:"911", color:"Black"}; // Kamu dapat mengubah properti: car.color = "White"; // 您可以添加属性: car.owner = "Bill";
但是您无法重新为常量对象赋值:
Contoh
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
常量数组可以更改
您可以更改常量数组的元素:
Contoh
// 您可以创建常量数组: const cars = ["Audi", "BMW", "porsche"]; // 您可以更改元素: cars[0] = "Honda"; // 您可以添加元素: cars.push("Volvo");
但是您无法重新为常量数组赋值:
Contoh
const cars = ["Audi", "BMW", "porsche"]; cars = ["Honda", "Toyota", "Volvo"]; // ERROR
浏览器支持
Internet Explorer 10 或更早版本不支持 const
关键词。
下表定义了第一个完全支持 const 关键词的浏览器版本:
Chrome 49 | IE / Edge 11 | Firefox 36 | Safari 10 | Opera 36 |
2016 年 3 月 | 2013 年 10 月 | 2015 年 2 月 | 2016 年 9 月 | 2016 年 3 月 |
重新声明
在程序中的任何位置都允许重新声明 JavaScript var
变量:
Contoh
var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 const
:
Contoh
var x = 2; // 允许 const x = 2; // 不允许 { let x = 2; // 允许 const x = 2; // 不允许 }
在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:
Contoh
const x = 2; // Diizinkan const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 { const x = 2; // Diizinkan const x = 3; // Tidak diizinkan x = 3; // Tidak diizinkan var x = 3; // Tidak diizinkan let x = 3; // Tidak diizinkan }
Deklarasi ulang di lingkungan atau blok lain const
Diizinkan adalah:
Contoh
const x = 2; // Diizinkan { const x = 3; // Diizinkan } { const x = 4; // Diizinkan }
Penyangkalan
Dengan var
Variabel yang didefinisikan akanPenyangkalanke atas. Jika Anda tidak mengerti apa penyangkalan (Hoisting), silakan belajar di bab tentang penyangkalan.
Anda dapat menggunakan variabel var sebelum deklarasi:
Contoh
carName = "Volvo"; // Anda dapat menggunakan carName di sini var carName;
Dengan const
Variabel yang didefinisikan tidak akan diangkat ke atas.
const
Variabel tidak dapat digunakan sebelum deklarasi:
Contoh
carName = "Volvo"; // Anda tidak dapat menggunakan carName di sini const carName = "Volvo";
- Halaman Sebelumnya Let JS
- Halaman Berikutnya Operator JS