ES6中的let 、const 和 var 的区别

在JavaScript中有三种声明变量的方式:var、let、const。下文给大家介绍js中三种定义变量的方式const, var, let的区别


1.let和const中不存在变量提升,var中存在变量提升

console.log("a----" + a);
var a = "a";

console.log("b----" + b);
let b = "b";

console.log("c----" + c);
const c = "c";

var a 输出的结果是        

let b  输出的结果是      

const c 输出的结果是   

因为b  和  c 不存在变量提升  代码从上往下执行  找不到b 和  c  所以报错  变成defined

2. let 和  const 会形成块级作用域(就是 {} )   var  除了函数 里面的  变量   否则不会形成块级作用域

function fn() {
     var a = 0;
     console.log(a);   
}
fn();
console.log(a);  

var  a   在函数里面输出的结果是

如果在if  中   就可以输出值

 if(true){
        var b = 0;
    }
    console.log(b);

结果会输出

我们再来看看   let  和  const  

function fn() {
  let a = 0;
  console.log(a);   
}
fn();
console.log(a);  

let a 输出的结果是

const和let输出的结果是一致的我就不写了  

再来看看  if  中的  输出的值吧

 if(true){
        let b = 0;
    }
    console.log(b);

       在if中的  let a 中我们看到的是 

3.let  const  不能再次赋值   而 var  可以再次赋值

    var a = 10;
    var a = 11;
    console.log(a);

var  变量可以再次赋值

    var a = 10;
    var a = 11;
    console.log(a);

    //输出的结果是11

我们再来看看let  和  const

let b = 11;
let b = 11;
console.log(b);

输出的结果是

系统报错:告诉我们  b 变量已经声明了

我们最后看看const

const c = 12;
const c = 12;
console.log(c);

会报和let一样的错   所以结果是一样的

以上就是let  const  和  var的区别

let  和 const  非常相似但是我们来看看它们之间唯一的区别

let a;
console.log(a);

会输出

再来看看const

const b;
console.log(b);

const  输出 

系统会报错:在Const声明中缺少初始化器

唯一的区别就是let声明变量不赋值不会报错   而const声明变量不赋值会报错

上面就是我个人的看法,如果有其他意见的望君留言

想看更多请点击我的博客

推荐:纯css画各种图形,包括基本的矩形、圆形、椭圆、三角形、多边形,也包括稍微复杂一点的爱心、钻石、阴阳八卦等

猜你喜欢

转载自blog.csdn.net/qq_40428678/article/details/83151904