LET CONST VAR 的区别

本文详细介绍了JavaScript中的var、let和const三种变量声明方式的差异。var定义的变量存在变量提升和全局作用域,let和const则在块级作用域内有效,let不允许多次声明,const定义的是不可变引用。理解这些概念对于编写可维护的JavaScript代码至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var

var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。

如果在声明变量时,省略 var 的话,该变量就会变成全局变量,如全局作用域中存在该变量,就会更新其值

  1. var a = 1; //此处声明的变量a为全局变量

  2. function foo(){

  3. a = 2;//此处的变量a也是全局变量

  4. console.log(a);//2

  5. }

  6. foo();

  7. console.log(a);//2   

注意:var 声明的变量存在提升(hoisting)。

提升

提升是指无论 var 出现在一个作用域的哪个位置,这个声明都属于当前的整个作用域,在其中到处都可以访问到。注意只有变量声明才会提升,对变量赋值并不会提升。如下例所示:

console.log(a);//undefined
var a = 1;
 

 

2.let


let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。

  1. 在同一个块级作用域,不能重复声明变量。
  2. let 声明的变量不存在变量提升,换一种说法,就是 let 声明存在暂时性死区(TDZ

 

3.const


const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。

所以准确的说,是 const 声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值