js 中声明常量关键字 var、let、const

js 中声明常量的关键字:var、let、const,其中 let 和 const 是 ES6 中新增的关键字。

  • let 声明的常量只在 let 所在的代码块中有效。

  • const 声明的是只读常量且声明时必须初始化,var 和 let 声明时可以不用初始化,同 let 相同,const 也是块级作用域。

全局作用域

在函数外声明的变量作用域是全局的。

var a = "1";
let b = "2";
const c = "3";

//此处可以访问变量 a、b、c

function myFunction() 
{
    //此处可以访问 a、b、c
}

局部作用域

在函数内声明的变量时局部的。


//此处不能访问变量 a、b、c

function myFunction() 
{
    var a = "1";
    let b = "2";
    const c = "3";
    //此处可以访问 a、b、c
}

//此处不能访问变量 a、b、c

块级作用域

两个 {} 内声明的变量时块级的。ES6 之前是没有块级作用域概念的。

  • var 关键字不具备块级作用域的特性,它在 {} 依然能够被访问到。

  • let 和 const 声明的变量在 {} 内有效,{} 外无效。

{
  var a = 1
  let b = 2
  const c = 3
}

console.log(a)  //此处可以使用 a 变量
console.log(b)  //此处不可以使用 b 变量
console.log(c)  //此处不可以使用 c 变量

使用 var 导致重新定义变量

var a = 1
console.log(a)  //1
{
  var a = 2
  console.log(a)  //2
}
console.log(a)  //2

在块作用中声明了同名变量 a,导致块作用域之外的变量 a 也被修改了,我们是不希望这种情况发生的。

为了防止此情况发生,使用 let 关键字

let a = 1
console.log(a)  //1
{
  let a = 2
  console.log(a)  //2
}
console.log(a)  //1

所以声明变量就使用 let 关键字吧,不变常量使用 const 关键字。

你可能感兴趣的:(js 中声明常量关键字 var、let、const)