变量
变量是存储值的容器。使用 let
关键字加一个变量名称可声明一个变量。
let
let
声明一个可重新赋值的、块级作用域的局部变量。给其赋初始化值是可选操作。
let myVariable = "Lite";
// 无需声明即可更改变量
myVariable = 'Rank';
// 声明多个变量的快捷方式
let a = 'hello', b = 'world'
const
const
声明块级作用域的局部常量。常量的值不能通过重新赋值进行更改,但如果常量是一个对象,则其属性可以添加、更新或删除。
const number = 42;
// [Error]: Assignment to constant variable.
number = 99;
作用域
作用域是当前执行的上下文,在其中值和表达式是“可见”的或可以被引用的。如果变量或表达式不在当前作用域中,则无法使用。
JavaScript 有以下类型的作用域:
- 全局作用域:在脚本模式下运行的所有代码的默认作用域。
- 模块作用域:在模块模式下运行的代码的作用域。
- 函数作用域:由函数创建的作用域。
此外,使用 let
或 const
声明的变量可以属于另一个作用域:
- 块级作用域:由一对花括号(
{}
)创建的作用域。
// 全局作用域中的变量可在任何地方访问
let g = 'global';
function updateVars() {
g = 'useVars';
}
updateVars();
console.log(g); // useVars
// 在函数中建立一个新的本地函数作用域
// 本地变量只能在其作用域内访问
function f1() {
let v1 = 'apple';
{
// 在花括号中建立一个新的块级作用域
let v1 = 'banana';
let v2 = 'cherry';
console.log(v1); // banana
}
// 块级作用域在此结束,回到函数作用域
console.log(v1); // apple
// [Error]: v2 is not defined
console.log(v2);
}
代码挑战
尝试在不使用第三个变量的情况下交换两个变量的值。
Loading...
> 此处输出代码运行结果