1.使用var声明 var声明的变量即是顶级变量(顶层对象(window对象)的属性)也是全局变量
var a=10;
console.log(window.a);
2.使用var声明变量存在变量提升(提升变量声明)的情况
console.log(b);
var b=10;//声明并且赋值
var b;
console.log(b)
b=10
3.使用var可以对一个变量进行多次声明,后面的声明会覆盖前面的变量声明
var c = 10;
var c = 40;
console.log(c);//40
4.在函数中再次使用var声明这个变量的时候,这个变量就是局部的,如果不是用var,那就全局的
var d = 10;
function fun1(){
var d = 20;
}
fun1()
function fun1(){
d=20
}
console.log(d)
1.let所声明变量只在let命令所在的代码块中生效
//块级作用域
{
let num = 10
console.log(num);
}
2.let不存在变量的提升
console.log(num1);//报错
let num1=20
3.不允许在相同作用域下重复声明
1.const声明一个只读的常量,一旦声明,常量的值就不能改变
2.一旦声明,必须赋值
————————————————————————————————————
区别:变量提升:
var声明变量存在变量提升,let和const不存在变量提升
块级作用域:
var不存在块级作用域,let和const存在块级作用域,只在所在代码块生效
重复声明:
var运行重复声明,let和const不允许在同一个作用域重复声明
修改声明的变量:
var和let可以改变声明的变量,const,不可以,一旦声明必须赋值,并且常量的值不能改变