JavaScript 101

1. Hello JavaScript
2. 声明变量
3. 常用类型
4. 运算符
5. 函数
6. 条件语句
7. 循环
8. 数组
9. 对象
10. 异步
2. 声明变量
声明变量

编程最基本的技术之一就是使用变量(variable)来表示值,就像用 0xAA 来指代一个人。在 JavaScript 程序中使用变量之前必须先声明这个变量。这一讲,我们将介绍声明变量的三个关键字 let,const,和 var,以及它们之间的区别。

let

在现代 JavaScript 中(ES6 版本之后),变量通过 let 关键字声明。

// 1. 先声明 year 变量,再给它赋值 2023
let year;
year = 2023;
// 2. 声明 name 变量的同时给它赋值 "0xAA" 
let name = "0xAA";
// 3. 声明 newName 变量,同时将变量 name 的值 “0xAA” 赋给它
let newName = name;

在上面的代码中,我们先声明了一个名为 year 的变量,并给它赋值 2023;之后声明另一个名为 name 变量的同时给它赋值 "0xAA"。最后,我们声明了一个名为 newName 的变量,并将变量 name 的值("0xAA")赋给它。

代码中以 // 开头的行是注释,用于提高代码的可读性,不会被执行。

const

在声明常量(constant,值不能改变的变量)是要用 const 关键字,声明时必须给它赋值。常量在第一次赋值后不能改变,不然会报错。

// 声明 age 常量,并赋值 18
const age = 18;
// 尝试改变常量的值时会报错 TypeError: Assignment to constant variable
age = 20;

var(不推荐)

在 ES6 之前的 JavaScript 中,没有 let 和 const 关键字,声明变量只能用 var 关键字。var 和 let 使用上类似,但是会造成全局对象的污染,是个过时的关键字,不推荐使用。

// 声明 variable 变量并赋值 "hello"
var variable = "hello"

更多关于 var 的细节请参考 MDN教程。

使用规范

ES6 之后新增的 let 和 const 关键字很好地解决了过时的 var 在作用域和语义上存在的诸多问题,也形成了开发时的使用规范。

  1. 能用 const 就用 const:使用 const 声明变量可以确保一些重要的值不会被改变,同时也能迅速发现一些因意外赋值导致的不合理行为。

  2. 不能用 const 就用 let,不要使用var:当开发者提前知道某些变量未来需要被修改时就使用 let,这样可以确保变量拥有明确的作用域和声明位置。

习题

下面的代码是否会报错?如果会,请修改它,让它正确运行。你可以在链接上找到这段代码。

const fruit = 'apple'
fruit = 'orange'
console.log(fruit)

总结

这一讲我们介绍了声明变量的三个关键字 let,const,和 var,并讲解了它们之间的区别和用法。在开发中,能用 const 就用 const,不能用 const 就用let,不要使用 var。

PreviousNext