let和var的区别
- let定义的变量是块级的变量。var定义的变量是全局变量或者函数变量
什么是块级作用域呢,简单来说就是在离它最近的一组{}里面有效出去了就没用了
举个例子
{
let a=10
}
console.log(a)
这样子是会报错的,但使用var不会
那let相比var有什么优势呢
举个例子:实现一组li标签的点击事件,每次点击时输出li的序列值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<script type="text/javascript">
let array=document.getElementsByTagName("li")
for(var i=0;i<array.length;i++)
{
array[i].onclick=()=>console.log(i)
}
</script>
</body>
</html>
看起来似乎没错但每次点击输出的都是5,单只要把变量I的定义var变成let就可以了
const
const可以理解为常量,用来定义不可变的值,工作中尽可能使用const代替let,可以避免命名冲突带来的严重
后果