1、使用var声明的变量,其作用域为 该语句所在的函数内,且存在变量提升的现象,值可更改。
2、使用let声明的变量,其作用域为 该语句所在的代码块内,不存在变量提升,值可更改。
3、使用const声明的变量,其作用域为 该语句所在的代码块内,不存在变量提升在后面的代码中, 不能再修改该常量的值。
面试经常会被问过一下问题
for (var i = 0; i < 10; i++) {
setTimeout(function () {
console.log(i)
}, 3000);
}
}
以上代码最后会输出什么?
答:最后会输出10次10
for (let i = 0; i < 10; i++) {
setTimeout(function () {
console.log(i)
}, 3000);
}
}
这个是依次输出0-9