
var的作用就不多说了,下面说说var的缺点:
1.var可以重复声明
var a = 1;
var a = 5;
console.log(a); //5 不会报错
在像这些这些严谨的语言来说,一般是不允许重复声明的。
2.无法限制修改
var a = 5;
a = 6;
console.log(a); //6 不会报错
3.没有块级作用域
if(true){
var a = 5;
}
console.log(a) // 5
以上几个就是我个人对var的看法
ES6中,多了两个声明let 和 const
let和const的共同点 : 不能重复声明,都是块级作用域
//let和const重复声明
//let
let a= 1;
let a = 2;
console.log(a); //报错 //const
const b = 2;
cosnt b = 3;
console.log(b); //报错 //let和const的块级作用域
//let
if(true){
let a = 8l
}
console.log(a); // 报错 //const
if(true){
const b = 8;
}
console.log(b) //报错 相对于var
if(true){
var c = 10;
}
console.log(c); //10
let和const的不用点:let声明的是变量,可以改变; const 声明的是常量,不能改变。
//let和const的不同点
//let声明的是变量,可以改变
let a = 8;
a = 88;
console.log(a); //88 //cosnt声明的是常量,不可以改变
const b= 8;
b = 88;
console.log(b); //报错
以上是我个人对var,let和const的理解