var、let、const的区别和使用

var、let、const的区别和使用

作用域不同

var声明的变量作用域为该语句声明的 函数内
let和const声明的变量作用域为该语句声明的 代码块中

if (true) {
   var a = 123;
}
console.log(a);  // 123  可以访问到 var不具有块级作用域
if (true) {
   let a = 123;  // let声明的a只作用在一堆花括号的代码块中
}
console.log(a);  // 报错:Uncaught ReferenceError: a is not defined

变量提升

var 声明的变量具有变量提升的特点,而let和const不具有。

console.log(a);
var a = 123; //undefined
console.log(a);
let a = 123; // 报错:Uncaught ReferenceError: Cannot access 'a' before initialization

值的可更改性

var和let声明的变量,值可以更改,而const声明的变量值不可以更改。
注意:若const声明的变量的值是简单数据类型,则值不可以更改,若为复杂数据类型,则数据的地址不可以更改,内容可以。

const a = 123;
a = 345;
console.log(a); //报错:Assignment to constant variable.
const arr = [1, 2, 3];
arr[0] = 4;
arr[1] = 5;
arr[2] = 6;
console.log(arr); // (3) [4, 5, 6]
arr = [7, 8, 9]; // 报错:Assignment to constant variable.

使用:若存储的值是固定不变的,则应尽量使用const,可以提高效率。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值