JavaScript常量
该关键字在[ES6 (2015)] const中引入
用 定义的变量const不能被重新声明
用 定义的变量const不能被重新赋值
const使用块作用域定义的变量
无法重新分配
变量const不能被重新赋值:
1 | const PI = 3.141592653589793; |
必须分配
JavaScriptconst变量在声明时必须赋值:
:正确的
1 | const PI = 3.14159265359; |
:不正确
1 | const PI; |
什么时候使用 JavaScript const?
const当您知道不应更改值时,请始终声明变量。
const声明时使用:
- 一个新的数组
- 一个新对象
- 一个新功能
- 一个新的正则表达式
常量对象和数组
该关键字const有点误导。
它没有定义常量值。它定义了对值的常量引用。
因此,您不能:
- 重新分配一个常量值
- 重新分配常量数组
- 重新分配常量对象
但是你可以:
- 更改常量数组的元素
- 改变常量对象的属性
常量数组
您可以更改常量数组的元素:
1 | // You can create a constant array: |
但你不能重新分配数组:
1 | const cars = ["Saab", "Volvo", "BMW"]; |
常量对象
您可以更改常量对象的属性:
1 | // You can create a const object: |
但你不能重新分配对象:
1 | const car = {type:"Fiat", model:"500", color:"white"}; |
var、let 和 const 之间的区别
| 范围 | 重述 | 重新分配 | 吊装 | 绑定这个 | |
|---|---|---|---|---|---|
| var | No | Yes | Yes | yes | Yes |
| let | Yes | No | Yes | No | No |
| const | Yes | No | No | No | No |
什么是好的?
let并且const 具有块作用域。
let并且const 不能重新申报。
let并且const 必须在使用前声明。
let并且const 不绑定到this.
let并且不const 被吊装。
什么是不好?
var不必声明。
var被吊起。
var与此相关。
浏览器支持
Internet Explorer 11 或更早版本不支持let和关键字。const
下表定义了完全支持的第一个浏览器版本:
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| Chrome 49 | Edge 12 | Firefox 36 | Safari 11 | Opera 36 |
| Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
块范围
在块作用域中,使用 const 声明变量与 let 类似。
在本例中,块中声明的 x 与块外声明的 x 不同:
1 | const x = 10; |
重新申报
var程序中的任何位置都允许重新声明 JavaScript变量:
1 | var x = 2; // Allowed |
不允许在同一范围内将现有的var或let 变量重新声明为const:
1 | var x = 2; // Allowed |
const不允许在同一范围内重新分配现有变量:
1 | const x = 2; // Allowed |
const允许在另一个作用域或另一个块中使用 ,重新声明变量:
1 | const x = 2; // Allowed |
吊装
用定义的变量var被提升到顶部并且可以随时初始化。
含义:您可以在声明变量之前使用该变量:
还行吧:
1 | carName = "Volvo"; |
用定义的变量const也会被提升到顶部,但不会被初始化。
含义:const在声明变量之前使用变量将导致 ReferenceError:
1 | alert (carName); |
搜索
阅读量:
收藏数:
点赞数:







0评论