JavaScript 变量声明

预计阅读时间1 分 118 views

在 JavaScript 中,变量就像一个个容器,用来存储代码需要处理的数据。

变量声明

我们使用 varletconst 来声明变量。它们之间有什么区别呢?

  • var: 这是最“古老”的声明方式,可以声明全局变量和局部变量。但 var 声明的变量存在变量提升的特性,有时会带来意外的结果。
  • let: 这是 ECMAScript 6 (ES6) 引入的新关键字,用于声明块级作用域的变量。这意味着 let 声明的变量只能在声明它的代码块中使用,更加安全和易于维护。
  • const: 用于声明常量,顾名思义,常量的值在初始化后就不能再改变了。 const 也拥有块级作用域。
var globalVar = "我是全局变量"; // 可以被任何代码访问

function myFunction() {
  let localVar = "我是局部变量"; // 只能在函数内部访问
  console.log(localVar);

  if (true) {
    const blockConst = "我是块级常量"; // 只能在这个代码块中访问
    console.log(blockConst); 
  }

  // console.log(blockConst);  //  这行会报错,因为 blockConst 超出了作用域

}

myFunction(); 

变量命名

为了避免代码混乱,JavaScript 对变量命名制定了一些规则:

  • 必须以字母、下划线 (_) 或美元符号 ($) 开头。
  • 后续字符可以是字母、数字、下划线或美元符号。
  • 区分大小写,myVarmyvar 是两个不同的变量。
  • 不能使用 JavaScript 关键字作为变量名,例如 ifelsefor 等。

变量赋值

声明变量后,我们需要使用赋值运算符 (=) 为其赋值:

let message = "Hello, world!"; // 声明变量 message 并赋值为字符串 "Hello, world!"
const PI = 3.1415926;        // 声明常量 PI 并赋值

变量作用域

  • 全局变量: 在函数外部声明的变量,可以在代码的任何地方访问。
  • 局部变量: 在函数内部声明的变量,只能在函数内部访问。
var globalVar = "我是全局变量"; 

function myFunction() {
  let localVar = "我是局部变量";
  console.log(globalVar); // 可以访问全局变量
  console.log(localVar); // 可以访问局部变量
}

myFunction();
// console.log(localVar); //  这行会报错,因为 localVar 超出了作用域

变量提升

var 声明的变量会发生“变量提升”现象。 JavaScript 引擎会在执行代码之前,将所有 var 声明的变量提升到当前作用域的顶部。 这意味着我们可以在声明变量之前使用它,但此时它的值是 undefined

console.log(x); // 输出 undefined
var x = 10;

为了避免 confusion,建议始终先声明变量,再使用它。 letconst 虽然也会提升,但不会被初始化,在声明之前访问会抛出错误。

常量:不可更改的值

使用 const 声明的常量,其值在初始化后就不能再被修改:

const PI = 3.14159;
PI = 3.14; //  这行会报错,因为常量不能被重新赋值
分享此文档

JavaScript 变量声明

或复制链接

本页目录