一、let
1. 不能重复声明
let a=100
let a=200 // 报错
2. 块级作用域
{
const B="UUUTTT"
}
console.log(B) // 报错
3.不存在变量提升
console.log(b) //报错
let b=100;
4.不影响作用域链
作用域链:很简单,就是代码块内有代码块,跟常规编程语言一样,上级代码块中
的局部变量下级可用
let c= "uut"
{
function fn(){
console.log( c )
}
}
fn()
二、const
1.一定要赋初始值
const A; //报错
2.一般常量用大写(潜规则)
const A=100 // 小写也可以
3.常量的值不能修改
A=200 // 报错
4. 块级作用域
{
const B="UUUTTT"
}
console.log(B) // 报错
5. 对于数组和对象的元素修改,不算对常量的修改,不会报错
const TEAM=["LEA","MAA"]
TEAM.push("UUT")
TEAM=100 // 报错