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