Const ng Array sa JavaScript
ECMAScript 2015 (ES6)
Noong 2015, pinakilala ng JavaScript ang isang mahalagang bagong keyword:const
。
使用 const
Ang pag-deklara ng array ay naging isang karaniwang gawain:
实例
const cars = ["Saab", "Volvo", "BMW"];
Hindi pwedeng i-reassign
用 const
Ang array na idinahilang ay hindi pwedeng i-reassign:
实例
const cars = ["Saab", "Volvo", "BMW"]; cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Ang array ay hindi konstante
Keyword const
May maliwanag na pagkakamali.
Hindi ito tinatawag na array ng constant. Tinatawag nito ay konstanteng pagtutukoy sa array.
Kaya pa rin maaaring i-edit ang element ng array ng constant.
Maaaring i-reassign ang element
Maaaring i-edit ang element ng array ng constant:
实例
// Maaaring lumikha ng array ng constant: const cars = ["Saab", "Volvo", "BMW"]; // Maaaring i-edit ang element: cars[0] = "Toyota"; // Maaaring idagdag kang element: cars.push("Audi");
Browser supports
Internet Explorer 10 或更早的版本不支持 const
关键字。
下表注明了完全支持 const 关键字的首个浏览器版本:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
2016 年 3 月 | 2013 年 10 月 | 2015 年 2 月 | 2016 年 9 月 | 2016 年 3 月 |
声明时赋值
JavaScript const
变量在声明时必须赋值:
意思是:用 const
声明的数组必须在声明时进行初始化。
使用 const
而不初始化数组是一个语法错误:
实例
不起作用:
const cars; cars = ["Saab", "Volvo", "BMW"];
用 var
声明的数组可以随时初始化。
您甚至可以在声明之前使用该数组:
实例
没问题:
cars = ["Saab", "Volvo", "BMW"]; var cars;
const 块作用域
用 const
声明的数组具有块作用域。
在块中声明的数组与在块外声明的数组不同:
实例
const cars = ["Saab", "Volvo", "BMW"]; // 此处 cars[0] 为 "Saab" { const cars = ["Toyota", "Volvo", "BMW"]; // 此处 cars[0] 为 "Toyota" } // 此处 cars[0] 为 "Saab"
用 var
声明的数组没有块作用域:
实例
var cars = ["Saab", "Volvo", "BMW"]; // 此处 cars[0] 为 "Saab" { var cars = ["Toyota", "Volvo", "BMW"]; // 此处 cars[0] 为 "Toyota" } // 此处 cars[0] 为 "Toyota"
您可以在以下章节中学习更多关于块作用域的内容:Scope ng JavaScript。
重新声明数组
在程序中的任何位置都允许用 var
重新声明数组:
实例
var cars = ["Volvo", "BMW"]; // 允许 var cars = ["Toyota", "BMW"]; // 允许 cars = ["Volvo", "Saab"]; // 允许
不允许在同一作用域或同一块中将数组重新声明或重新赋值给 const
:
实例
var cars = ["Volvo", "BMW"]; // 允许 const cars = ["Volvo", "BMW"]; // 不允许 { var cars = ["Volvo", "BMW"]; // 允许 const cars = ["Volvo", "BMW"]; // 不允许 }
不允许在同一作用域或同一块中重新声明或重新赋值现有的 const
数组:
实例
const cars = ["Volvo", "BMW"]; // 允许 const cars = ["Volvo", "BMW"]; // 不允许 var cars = ["Volvo", "BMW"]; // 不允许 cars = ["Volvo", "BMW"]; // 不允许 { const cars = ["Volvo", "BMW"]; // 允许 const cars = ["Volvo", "BMW"]; // 不允许 var cars = ["Volvo", "BMW"]; // 不允许 cars = ["Volvo", "BMW"]; // 不允许 }
允许在另一个作用域或另一个块中使用 const
重新声明数组:
实例
const cars = ["Volvo", "BMW"]; // 允许 { const cars = ["Volvo", "BMW"]; // 允许 } { const cars = ["Volvo", "BMW"]; // 允许 }