0
点赞
收藏
分享

微信扫一扫

ES6中let的用法及一个小案例

夕颜合欢落 2022-03-11 阅读 58
es6

1.ES6中let和var的主要区别:
(1)let声明的变量只在当前块级作用域内有效。

if(true){
	var a=1;
	let b=2;
}
console.log(a);
console.log(b);
结果:1
	 b is not defined

(2)let和const声明的变量不能被重复声明。
在这里插入图片描述结果:我是爸爸
我才是爸爸

let son='儿子'let son='我才是'

结果会报错,因为不能重复声明son

(3)不存在变量的提升。

console.log(dad);
let dad='爸爸';
//此时会报错,因为let声明的变量不会自动提到前面,此时dad被理解为一个没有声明的变量。

(4)暂存死区

var monkey='你是猴子'{
 console.log(monkey);
 var monkey='我觉得是';
}
console.log(monkey);
//结果:
你是猴子
我觉得是

let monkey='你是猴子'{
 console.log(monkey);
 let monkey='我觉得是';
}
console.log(monkey);
//ES6规定,如果块级作用域中存在let或者const声明的变量,这个变量一开始就会形成一个封闭的作用域,所以第一个console.log(monkey);拿不到外面的结果。

结果:在这里插入图片描述

2.块级作用域简单地说就是一个{}包起来的区域。

3.生成十个按钮,每个按钮点击的时候弹出1–10;

//用var实现
var i=0;
for(i=1;i<=10;i++){
(function(i){
	var btn=document.createElement('button');
	btn.innerText=i;
	btn.onclick=function()
	{
		alert(i);
	};
	document.body.appendChild(btn);
})(i);
}

//用let实现
for(let i=1;i<=10;i++){
	var btn=document.createElement('button');
	btn.innerText=i;
	btn.onclick=function()
	{
		alert(i);
	};
	document.body.appendChild(btn);
}

举报

相关推荐

0 条评论