JavaScript const 关键字
-
JavaScript const 关键字
ES2015引入了两个重要的新JavaScript关键字:let和const。使用const定义的变量的行为类似于let变量,只是它们不能被重新分配:
尝试一下const PI = 3.141592653589793; PI = 3.14; // 这将给出一个错误 PI = PI + 10; // 这也会给出一个错误
-
块作用域
声明const变量类似let ,当谈到块作用域。在此示例中,块中声明的x与块外部声明的x不同:
尝试一下var x = 10; // 这里x是 10 { const x = 2; // 这里x是 2 } // 这里x是 10
您可以在前一章中了解有关块作用域的更多信息: JavaScript let 关键字。 -
声明时分配
const声明时,必须为JavaScript变量赋值:不正确:const PI; PI = 3.14159265359;
正确:const PI; const PI = 3.14159265359;
-
不是真正的常数
关键字const有点误导。它没有定义常量值。它定义了对值的常量引用。因此,我们不能更改常量原始值,但我们可以更改常量对象的属性。 -
原始值
如果我们将一个原始值赋给常量,我们就不能改变原始值:
尝试一下const PI = 3.141592653589793; PI = 3.14; // 报错 PI = PI + 10; // 报错
-
const对象可以更改
您可以更改const对象的属性:
尝试一下// 您可以创建一个const对象: const car = {type:"Fiat", model:"500", color:"white"}; // 您可以更改属性: car.color = "red"; // 您可以添加属性: car.owner = "Johnson";
但是你不能重新分配const对象:
尝试一下const car = {type:"Fiat", model:"500", color:"white"}; car = {type:"Volvo", model:"EX60", color:"red"}; // 错误
-
-
浏览器支持
letInternet Explorer 10或更早版本不完全支持const关键字。下表定义了第一个完全支持该关键字的浏览器版本:关键字 Internet Explorer Chrome FireFox Safari Opera 关键字名称 const IE/Edge 11 Chrome 49 Firefox 36 Safari 10 Opera 36 开始支持时间 2013,10 2016,3 2015,2 2016,9 2016,3 -
重新声明
在程序中的任何位置允许重新声明JavaScript var变量:var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
不允许在同一范围内或同一块中用const重新声明或重新分配现有var或let变量:var x = 2; // 允许 const x = 2; // 不允许 { let x = 2; // 允许 const x = 2; // 不允许 }
不允许const在同一范围内或同一块中重新声明或重新分配现有变量:const x = 2; // 允许 const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 { const x = 2; // 允许 const x = 3; // 不允许 x = 3; // 不允许 var x = 3; // 不允许 let x = 3; // 不允许 }
允许使用const,在另一个范围或另一个块中重新声明变量:const x = 2; // 允许 { const x = 3; // 允许 } { const x = 4; // 允许 }
-