编程语言中有一个功能叫做变量,它可以用于存储各种数据,并在需要时进行重复利用。
本文将介绍变量的作用和变量声明。
在编写程序时,对变量的处理是必要的知识,因此让我们充分理解什么是变量。
变量
变量是指为不同类型的数据(如字符串或数字)命名的存储位置。
通过访问变量,可以随后引用或修改其中存储的数据。
可以将变量的概念简单地想象成贴有标签的“箱子”。
例如,假设有一个贴有标签“ticket”的箱子。
里面存放着一个数值为1500的数据,代表票价为50元。
这样就可以检查、删除和更改箱子中的内容。
请看下面的例子:
console.log('一张票的价格是' + 50 + '元'); // "一张票的价格是50元" console.log('两张票的价格是' + 50 * 2 + '元'); // "两张票的价格是100元" console.log('五张票的价格是' + 50 * 5 + '元'); // "五张票的价格是150元"
这里计算并输出了一张票的价格乘以人数的结果。
然而,每次都需要写入50的值,如果价格变化了,就必须全部修改。
那么,事先把票价放在箱子里怎么样呢?
let ticket = 50; // 变量声明 console.log('电影票一张的价格是' + ticket + '元'); // "电影票一张的价格是50元" console.log('电影票两张的价格是' + ticket * 2 + '元'); // "电影票两张的价格是100元" console.log('电影票五张的价格是' + ticket * 5 + '元'); // "电影票五张的价格是150元"
将票价50放入名为ticket的箱子中,这样我们可以在需要时取出箱子里的内容。
也就是说,省去了每次写入50的麻烦。
如果以后价格变动了,只需要修改箱子里的内容就好了。
let ticket = 70; // 价格上涨,从50变为70。只需修改这里即可。
通过使用变量,可以提高程序的效率。
变量名可以让人一眼看出它存储的是什么类型的数据,这也是变量的一个方便之处。
变量声明
在JavaScript中,有三种关键字用于变量声明:const、let和var。
最初只有var关键字被使用,但从ECMAScript2015开始,为了解决问题,引入了const和let关键字。
const | let | var |
---|---|---|
需要初始值 | 初始值可以省略 | 初始值可以省略 |
无法重新分配值 | 可以重新分配 | 可以重新分配 |
变量不能被重新声明 | 变量不能被重新声明 | 变量可以重新声明 |
这些内容是关于变量声明的,需要描述关键字和变量的名称,并赋予初始值。
关键字 变量名 = 初始值(要存储的数据);
接下来,我们详细看一下每个变量声明。
const
const可以声明不可重新赋值的变量。
在关键字后面,设置变量名并且一定要设置初始值。
以下是声明一个名为countryName的变量,并将初始值定义为'China'字符串的示例。
const countryName = 'China';
对于已经声明的变量,如果尝试在后面进行赋值就会报错。
const countryName = 'China';
countryName = 'Australia'; // "Uncaught TypeError: Assignment to constant variable."
let
let可以声明可重新赋值的变量。
在关键字后面,设置变量名和初始值。
let countryName = 'China';
与const不同,可以不设置初始值定义变量。
这时,当我们访问该变量时,会引用到undefined的值。
如果没有设置初始值,就会将默认值设置为undefined。
let countryName; console.log(countryName); // undefined
对于没有设置初始值的变量,可以使用赋值运算符=来给变量赋值。
let countryName; countryName = 'China';
可以多次进行值的赋值。
let countryName = 'China'; countryName = 'Australia' countryName = 'Canada'; console.log(countryName); // "Canada"
var
var可以声明可重新赋值的变量。
在关键字后面,设置变量名和初始值。
var countryName = 'China';
在声明变量时可以省略初始值,而且可以多次重新赋值,这与let相同。
var countryName; countryName = 'China'; countryName = 'Australia'; console.log(countryName); // "Australia"
var的问题
仅仅通过之前的解释,我们可能会认为let和var完全相同。
然而,let被添加是为了解决var的问题,所以它们是有区别的。
使用var时,可以重新定义同名变量。这就是变量的重新声明。
不小心重新声明变量,会导致覆盖掉原有的值。
var num = 1; var num = 2;
而在let中,不能重新声明变量。
因此,可以防止重复定义变量的情况发生。
let num = 1; let num = 2; // "Uncaught SyntaxError: Identifier 'num' has already been declared"
在大多数情况下,可以用let或const来替代var。
因此,尽量避免使用var,并根据变量是否需要重新赋值等情况选择使用let或const。
关于如何选择使用let和const,可以参考以下文章。
总结
本文介绍了JavaScript的变量和声明。
// 要点 const用于声明不可重新赋值的变量 let用于声明可重新赋值的变量 var用于声明可重新赋值的变量,但存在变量重新声明引发的bug风险 请在今后的变量使用中,注意这些要点并加以利用。