1.let的作用域只作用在当前代码块
{
var
str1 =
"张三";
let
str2 =
"李四";
}
console.
log(
str1);
//undefined
console.
log(
str2);
//str is not defined
2.let的作用域不会被提升
var 提升了作用域
{
console.
log(
str);
//undefined
var
str =
"张三";
}
相当于
{
var
str ;
console.
log(
str);
//undefined
str =
"张三";
}
let直接报错
{
console.
log(
str);
//str is not defined
let
str =
"张三";
}
3.在相同的作用域下不能声明相同的变量
{
var
str =
"张三";
var
str =
"李四";
console.
log(
str);
//李四
}
{
let
str =
"李四";
let
str =
"张三";
console.
log(
str);
//Identifier 'str' has already been declared
}