var let和const的区别

本文详细介绍了JavaScript中的var、let和const三种变量声明方式的区别。var具有函数作用域,可能存在变量提升;let是块级作用域,不存在变量提升;const同样为块级作用域,但其值不可更改。理解这些差异对于编写高质量的JavaScript代码至关重要。
摘要由CSDN通过智能技术生成

var、let和const的区别
1、var

  1. var 是函数作用域
    var操作符定义的变量会成为包含它的函数的局部变量,那就意味着该在函数退出时var定义的局部变量会被销毁。
    举个例子:
function fn() {
	var name = 20;
	console.log(var); //20
	}
	fn();
	console.log(var); //报错

有一点需要注意,如果在定义局部变量的时候省略了var操作符,该变量会变成全局变量(不推荐这么做,比较难维护,严格模式下会抛出RenferenceError)

function test() {
	age = 26;//全局变量
}
test();
console.log(age);//26

2.var 声明提升
使用var操作符声明的变量会自动提升到函数作用域的顶部

function foo() {
	console.log(name);
	var name ="Tom";
}
foo();//undefined
//相当于
function foo() {
	var name;
	console.log(name);
	 name ="Tom";
}
foo();//undefined

2、let

  1. let是块级作用域
if(true) {
	var name = "Tom";
	console.log(name);//Tom
}
console.log(name);//RefernceError
  1. let 声明的变量不会在作用域中被提升

3、const
const基本上同let一样,主要区别就是const在声明变量的同时初始化变量,且尝试修改const声明的变量会导致运行错误

  1. const是块级作用域
  2. 不允许被重复声明
  3. 不允许修改值
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值