跳至主要內容

变量

wzCoding大约 2 分钟JavaScript变量

变量

变量 是可以改变的量,用来代指事物的状态,在应用程序当中,变量又叫做标识符,用来作为值的符号名

声明变量

在 JavaScript 有三种声明方式:

  • var:声明一个函数范围或全局范围的变量,并可将其初始化为一个值(可选)
  • let:声明一个块级作用域的局部变量,并可以初始化为一个值(可选),但是不能重新声明
  • const:声明一个块级作用域的局部常量,并可以初始化为一个值(可选),但是不能重新声明,不能重新赋值

声明变量可以使用 varlet,声明常量使用 const,也可以通过直接赋值的方式来声明变量,但是通常不建议这么做

var

var 声明的变量有变量提升的效果,即无论在何处声明,都会在执行代码之前进行处理

var a = 10
console.log(a)  //输出 10

console.log(x)  //输出 undefined
var x = 1
console.log(x)  //输出 1
/* 
这里因为变量提升,不会报错,会将 x 的值初始化为 undefined
等价于
var x
console.log(x) // undefined
x = 1
console.log(x) // 1
*/
if(x === 1){
    var x = 2
    console.log(x)  //输出 2
}
console.log(x)  // 输出 2

var { name } = { name:'Tom', age:18 } //解构赋值
console.log(name) //输出 Tom

let

let 声明的变量没有变量提升,变量的作用域被限制在代码块中,在编译时才初始化(暂时性死区)

let a = 2
console.log(a)  //输出 2

console.log(x)  //报错(没有变量提升,所以无法在初始化前访问到 x)
let x = 1
console.log(x)  //输出 1 

if(x === 1){
    var x = 3  //报错 (var 声明的变量没有块作用域的概念,会被提升到全局上下文与然后报错)
    let x = 2 
    console.log(x)  //输出 2
}
console.log(x)  // 输出 1

let { name } = { name:'Tom', age:18 } //解构赋值
console.log(name) //输出 Tom

const

const 用来声明常量,声明常量的语法与 let 类似

const a = 20
console.log(a)  //输出 20

a = 5
console.log(a)  //报错,同一个常量声明后不能重新赋值

const a = 7
console.log(a)  //报错,同一个常量声明后不能再重新声明

const a
console.log(a)  //报错,常量必须要有一个初始值

const { name } = { name:'Tom', age:18 } //解构赋值
console.log(name) //输出 Tom 

const list = []
list.push(1,2,3)
console.log(list) //输出 [1,2,3](可以将数组或者对象声明为一个常量,然后操作这个数组或者对象)

ℹ️提示

JavaScript 是区分大小写的,在声明变量时,变量名称的大小写形式会被区分成不同的变量名