let关键字
- let变量声明
let a;
let b, c, d;
let e = 100;
let f = 520,g = 'hello',h = [];
- 不允许重复声明
let star = '罗志祥'
let star = '小猪'
这里会报错:Uncaught SyntaxError: Identifier 'star' has already been declared
var是可以重复定义的
- 块儿级作用域
es6新增块级作用域 {},let适用于块级作用域
{let girl = '周扬青'}
console.log(girl); 这里会报错:Uncaught ReferenceError: girl is not defined
var不适用于块级作用域
if else while 下面的{} 都属于块级作用域
var,let都适用于函数作用域
- 不存在变量提升
console.log(song); 输出undefined
var song = '恋爱达人'
console.log(word);这里会报错 Uncaught ReferenceError: Cannot access 'word' before initialization
let word = 'hello'
var是会变量提升的
- 不影响作用域链
let school = '尚硅谷'
{
function fn(){
console.log(school);
}
fn() 这里输出尚硅谷
}