» JavaScript快速入门 » 1. 基础篇 » 1.4 变量

变量

变量是存储值的容器。使用 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 有以下类型的作用域:

  • 全局作用域:在脚本模式下运行的所有代码的默认作用域。
  • 模块作用域:在模块模式下运行的代码的作用域。
  • 函数作用域:由函数创建的作用域。

此外,使用 letconst 声明的变量可以属于另一个作用域:

  • 块级作用域:由一对花括号({})创建的作用域。
// 全局作用域中的变量可在任何地方访问
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...
> 此处输出代码运行结果
上页
下页