console.log(a);// undefined
var a =100;
console.log(b);// 报错:b is not defined 找不到b这个变量
let b =10;
console.log(c);// 报错:c is not defined 找不到c这个变量const c =10;
2.let和const声明形成块作用域
if(1){
var a =100;
let b =10;const c =1;}
console.log(a);// 100
console.log(b)// 报错:b is not defined 找不到b这个变量
console.log(c)// 报错:c is not defined 找不到c这个变量
3.var声明的变量会挂载在window上,let和const不会
var a =100;
console.log(a,window.a);// 100 100
let b =10;
console.log(b,window.b);// 10 undefinedconst c =1;
console.log(c,window.c);// 1 undefined
4.同一作用域下var可以声明同名变量,而let和const不可以
var a =100;
console.log(a);// 100
var a =10;
console.log(a);// 10
let b =100;
let b =10;// 控制台报错:Identifier 'b' has already been declared 标识符a已经被声明了。const c=100;const c=10;// 控制台报错:Identifier 'c' has already been declared 标识符a已经被声明了。
JavaScript之var let const的区别var:存在变量提升,没有块的概念,可以跨块访问, 不能跨函数访问,会挂载在window上。let:不存在变量提升,只能在块作用域里访问,不能跨块访问,也不能跨函数访问,不会挂载在window上。const:不存在变量提升,使用时必须初始化,只能在块作用域里访问,而且不能修改,如果声明的是复合类型数据,可以修改其属性,不会挂载在wind...