浅层js的个人总结思考
带着问题思考
let、var、const的区别
var和let用于声明变量,但是let不同于var的是,let声明变量存在块作用域,块作用域外的变量改变不会影响到块作用域内的变量的值。
<script>
setTimeout(function(){
for(var i=0;i<3;i++){
console.log(i);//3 3 3
}
},0);
</script>
<script>
setTimeout(function(){
for(let i=0;i<3;i++){
console.log(i);//0 1 2
}
},0)
</script>
综上可以看出let声明的变量,在延时器异步的情况下并不会受到作用域之外的变量的值的改变而改变自己本身的值。
const,适用于声明常量,即正常情况下不需要发生改变的值,例如函数的声明和元素的获取,都可以使用const声明。