js三种声明特点
var,let,const三者的特点
一、var的特点
1、变量提升
console.log(a); // undefined
var a = 10;
// 过程
var a;
console.log(a); // undefined
a = 10;
2、重复声明
一个变量可多次声明,后面的声明会覆盖前面的声明
3、函数中
在函数中使用var声明变量的时候,该变量是局部的,但是如果在函数中不用var声明会变成全局变量
var a = 1;
function fn(){
var a = 2;
b = 3;
}
fn();
console.log(a); // 1
console.log(b); // 3 此时b是全局变量
二、let的特点
1.暂时性死区
不存在变量提升,let声明变量前,该变量不能使用,这就是暂时性死区
2.作用域
let命令所在的代码块内有效,在块级作用域内有效(也就是大括号内)
{
let a = 1;
}
console.log(a); // 报错
3.重复声明
let不允许在相同作用域中重复声明,但是在不同作用域有重复声明时不会报错
三、const特点
1.声明变量的特性
const声明一个常量,声明后,值就不能改变
2.const必须初始化
const声明变量时必须给他赋值,不然就会报错