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的理解