var
1.使用var声明的变量存在变量提升
2.使用var声明的变量可以重复声明
3.使用var声明的变量不存在块级作用域
var a=3;
var a='hello';
console.log(a);//hello --在js中没有重载概念 只有重写
注意:
//使用代码块{}包裹的就叫块级作用域
// 使用var声明的变量写在函数体内就叫一个局部变量 写在外面就叫全局变量
// 在函数体内没有使用var定义变量就是一个全局变量
2.let 用于声明一个变量
1 变量不会提升,即在变量声明之前无法使用该变量
2.不可以重复声明,只能声明一次
3.具有块级作用域,只在当前作用域有效
3.const 用于声明一个常量
1.变量声明不会被提升,即在变量声明之前无法使用该变量
2.不允许重复声明。
3.具有局部作用域,即const声明的变量只能在对应代码块中使用
4.const声明的变量在声明的时候就需要赋值,并且只能赋值一次,不能修改。