var let const 的区别

 // 1.es5只有全局作用域和函数作用域, es6添加块级作用域 {}
		if(true){
			let a = 1;
		}
		console.log(a)	//因为let,const作用域在{}内,所以此时得到结果:a is not defined
// 2.var 可以随时改变变量,并且变量可升级 undefined 定义的变量会作为window对象的属性
		x = 1;
		var x; //先赋值后声明,变量x声明提升
		console.log(x)
				
		y = 1;
		let y;
		console.log(y)	//报错
				
		z = 1;
		const z;
		console.log(z)  //报错
// 3.let 可以改变值,const不可改变值,只能改变当前值内的值
		if(true){
			let a = [];
			a = [2];		//[2]
			console.log(a)
					
			const b = []
			b = [2]
			console.log(b)  //报错
		}
				
		if(true){
			const a = [];
			a[0] = 2;
			console.log(a)  //[2]
					
			let b = [];
			b[0] = 2;
			console.log(b)  //[2]
		}
// 4.var命令能重复声明,后者覆盖前者;let 和 const不允许在相同作用域内,重复声明同一个变量
		if(true){
			var a = 1;
			var a = 2;
			console.log(a) //2
					
			let b = 1;
			let b = 2;
			console.log(b)  //报错
					
			const c = 1;
			const c = 2;
			console.log(c)  //报错
		}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值