Const JavaScript
- Previous Page JS Let
- Next Page JS Operators
ECMAScript 2015:
ECMAScript 2015 mengenalkan dua kata kunci penting baru dalam JavaScript:let
dan: const
.:
Through const
Variabel yang didefinisikan dengan: let
Variabel yang mirip seperti, tetapi tidak dapat diubah ulang:
Example
const PI = 3.141592653589793;: PI = 3.14; // Juga akan keluar kesalahan: PI = PI + 10; // Juga akan keluar kesalahan:
domain blok:
di:domain blok:dalam blok: const
Variabel yang diumumkan dengan: let
Variabel yang mirip.
Dalam contoh ini, x di deklarasikan dalam blok, berbeda dengan x yang di deklarasikan di luar blok:
Example
var x = 10;: // Di sini, x adalah 10: { const x = 6;: // Di sini, x adalah 6: } // Di sini, x adalah 10:
Anda boleh melihat di bab sebelumnya: Let JavaScript Dikembangkan lebih banyak tentang domain blok dalam sekolah menengah:
pada saat deklarasinya:
JavaScript: const
Variabel mesti diset nilai saat deklarasinya:
Salah:
const PI;: PI = 3.14159265359;:
Benar:
const PI = 3.14159265359;:
Bukan konstan sebenarnya:
Kata kunci: const
Dapat menimbulkan kesan menyesatkan:
Tidak mendefinisikan nilai konstan. Ia mendefinisikan referensi konstan kepada nilai.
Sebagai akibatnya, kita tidak boleh mengubah nilai asal konstan, tetapi kita boleh mengubah sifat objek konstan.
Nilai asal:
Jika kita menugaskan nilai asal kepada konstan, kita tidak boleh mengubah nilai asal:
Example
const PI = 3.141592653589793;: PI = 3.14; // Juga akan keluar kesalahan: PI = PI + 10; // Juga akan keluar kesalahan:
Objek konstan boleh diubah:
Anda boleh mengubah sifat objek konstan:
Example
// Anda boleh mencipta objek const: const car = {type:"porsche", model:"911", color:"Black"}; // Anda boleh mengubah sifat: car.color = "White"; // 您可以添加属性: car.owner = "Bill";
但是您无法重新为常量对象赋值:
Example
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
常量数组可以更改
您可以更改常量数组的元素:
Example
// 您可以创建常量数组: const cars = ["Audi", "BMW", "porsche"]; // 您可以更改元素: cars[0] = "Honda"; // 您可以添加元素: cars.push("Volvo");
但是您无法重新为常量数组赋值:
Example
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
变量:
Example
var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 const
:
Example
var x = 2; // 允许 const x = 2; // 不允许 { let x = 2; // 允许 const x = 2; // 不允许 }
在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:
Example
const x = 2; // Allows const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 { const x = 2; // Allows const x = 3; // Not allowed x = 3; // Not allowed var x = 3; // Not allowed let x = 3; // Not allowed }
Re-declaration in another scope or block const
Is allowed:
Example
const x = 2; // Allows { const x = 3; // Allows } { const x = 4; // Allows }
Hoisting
Through var
Defined variables areHoistingto the top. If you are not familiar with Hoisting, please study this chapter.
You can use var variables before declaration:
Example
carName = "Volvo"; // You can use carName here var carName;
Through const
Defined variables are not hoisted to the top.
const
Variables cannot be used before declaration:
Example
carName = "Volvo"; // You cannot use carName here const carName = "Volvo";
- Previous Page JS Let
- Next Page JS Operators