浅谈let
let用来声明变量,类似于var,但是所声明的变量,只在let命令所在的代码块内有效
特点:
1)存在块级作用域
2)不存在声明提升(考虑暂时性死区)
3)不允许重复声明(包括普通变量和函数参数)
现在实现一个效果是点击得到对应的索引
用var来实现效果代码如下:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<script type="text/javascript">
var oLis=document.querySelectorAll('li')
for (var i = 0; i < oLis.length; i++) {
oLis[i].index=i
oLis[i].onclick=function(){
console.log(this.index)
}
}
</script>
利用let关键字
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<script type="text/javascript">
var oLis=document.querySelectorAll('li')
for (let i = 0; i < oLis.length; i++) {
// oLis[i].index=i
oLis[i].onclick=function(){
console.log(i)
}
}
</script>
let提供的是块级作用域,所以无需再声明index