let / const 与 var 的区别:
- var 会进行预解析;
- let / const 不会进行预解析;
<script>
console.log(num)
var num = 100
console.log(num)
console.log(num2)
let num2 = 200
console.log(num2)
</script>
- var 没有块级作用域;
- let / const 有块级作用域;
<script>
if (true) {
var num1 = 100
console.log(num1)
}
console.log(num1)
if (true) {
let num2 = 100
console.log(num2)
}
console.log(num2)
</script>
- var 可以声明两个重名的变量(后面覆盖前面);
- let / const 不能定义重名变量(会报错);
let 与 const 的区别:
- let 可以定义变量的时候不进行赋值;
- const 在定义的时候必须赋值;
- let 定义的变量可以被修改;
- const定义的常量一经赋值不能被修改;
-
建议使用优先级:const > let > var
-
使用场景:let 一般应用于基本数据类型,const 一般应用于引用数据类型,即函数对象;