let和var的相同点和不同点(let和var的特点)(重点)
1、相同点:
在全局作用域中声明的变量是全局变量,在局部作用域中声明的变量是局部变量
2、不同点:
1、let声明的变量不能提升
2、let不能重复声明
3、let声明的变量只在当前作用域内有效({ }大括号内的区域就是块作用域)
4、let声明的变量会产生暂时性死区
//不能提升
console.log(a)
let a=1; //undefined
var a=1; //报错
//不能重复声明
var a=1;
var a=2;
console.log(a) //2
let a=1;
let a=2;
console.log(a) //报错
//只在当前块作用域有效
if(1){
let a=1;
console.log(a)//1
}
console.log(a);//报错
let a=2;
if(1){
let a=1;
console.log(a);//1
}
const的特点(重要)
1、const声明的变量不能重复声明
2、const声明的变量不能提升3、const声明的变量必须要赋初值
4、const声明的变量是一个常量,不可以改变
5、const声明的变量只在当前块作用域内有效
6、const声明的变量会产
生暂时性死区
const a=1;
const a=2;
conosle.log(a)//报错
consol.log(a)//报错
const a=1;
const a=2
if(1){
const a=1;
console.log(a)//1
}
console.log(a)
const a=2
if(1){
const a=1;
console.log(a)//1
}
console.log(a);//2
const obj={
a:1,
b:2
}
obj.c=3;
console.log(obj)//a:1 b:2 c:3