var,let和const的区别


一、var在解析时会发生变量提升,let和const则不会

示例:
下面展示一些代码。

console.log(a);  // undefined 值不明确
var a = 1;
console.log(b);  // not defined 没有定义
let b = 2;
console.log(c);  // Cannot access 找不到
const c = 3;

下面代码关于var的变量提升

function fn(){
	//var a;
	if(true){
	console.log(a+'num');
	}else{
		var a = 1; 
		console.log(2);
	}
}
fn() // undefinednum

// 这样会发现不执行代码也会影响执行的代码,
//var变量提升到if前var a;

二、const和let都是块级局部变量

  • 只在当前作用域有效
{
let a = 1;
const b = 2;
}
console.log(a); // not defined
console.log(b); // not defined
  • const 在声明时必须赋值
const a;

在这里插入图片描述

  • const 只能声明赋值一次(简单数据类型),即声明后不可修改,复杂数据类型除外
const a = 1;
	a = 2;

在这里插入图片描述


三、同一作用域下const和let不能重复声明同一变量,而var可以


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值