var、let、const声明变量的区别

var

var是ES5之前的标准方式来声明变量。

// var声明
var a = 10;
if (true) {
  var a = 20; // 同一个变量a,值变为20
  console.log(a); // 输出20
}
console.log(a); // 输出20

let

let是ES6(ECMAScript 2015)引入的,用于声明块级作用域的变量。

// let声明
let b = 10;
if (true) {
  let b = 20; // 不同的变量b,外部的b仍然为10
  console.log(b); // 输出20
}
console.log(b); // 输出10

const

const也是ES6引入的,用于声明一个只读的常量。

// const声明
const c = 10;
// c = 20; // 错误:不能重新赋值

// 尝试修改const声明的对象属性
const obj = { value: 10 };
obj.value = 20; // 正确:可以修改对象属性

以下是varletconst的一些区别:

varletconst
作用域函数作用域或全局作用域块级作用域块级作用域。
提升变量提升,可以在声明之前访问,但会得到undefined不存在变量提升,必须先声明后使用,否则会报错不存在变量提升,必须先声明后使用,否则会报错
重声明可以在同一作用域内重复声明不能在同一作用域内重复声明不能在同一作用域内重复声明
值的更改可以重新赋值可以重新赋值一旦赋值,不能重新赋值,但可以修改其内部属性(如果是对象的话)

若有问题欢迎讨论指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值