ES6中let 与const,以及var的区别

ES6中let 与const,以及var的区别

本文主要讲解ES6中let与const,以及与var的区别。
写文章是为了锻炼一下自己的书写能力以及更加深入理解。如果你也是前端,不太会ES6的一些语法,或者是你刚接触JavaScript,都可以跟着文章练习起来,相信会对你学习 JavaScript有所帮助。

var

  • 使用var申明的变量,是全局变量。
 function textVar(){
    var a=30;
    if(true){
        var a=50;
        console.log(a);//50
    };
    console.log(a);//50 找离他最近的a
};

let

  • let有作用域的概念,他只在let命令所在的代码块内有效。
function textLet(){
        let a=30;
        if(true){
            let a=50;//有作用域的概念
            console.log(a);//50 
        };
        console.log(a);//30 
    };
    textLet();
  • let非常适合在for循环中使用,如果在外部读取,则会报错。
for (let i = 0; i < 10; i++) {
      // ...
    }
    console.log(i);
    // ReferenceError: i is not defined

let 与var的区别

  • let不存在变量提升,var会出现变量提升的情况,也就是说在变量没有申明的情况下去使用,但是它的值为undefined,let就不存在这种情况,let不允许在没有申明的情况下去使用,
console.log(foo); //undefined
    var foo = 2;
    console.log(bar); //ReferenceError
    let bar = 2;
  • let不允许重复声明,不允许在相同作用域内,重复声明同一个变量。但var可以,只不过它的值会被覆盖。
function letAndVar() {
      let a = 10;
       var a = 1;
    }
     // 报错
    function letAndVar() {
      let a = 10;
      let a = 1;
    }
     // 报错
    function letAndVar() {
       var a = 10;
       var a = 1;
    }
    // 正常,但是a的值会为1

const

  • 一但申明,不可修改,他是一个常量。
const x=10;
      x=100;
   console.log(x);//Uncaught TypeError: Assignment to constant variable.
  • 定义数组
const colors=[];
colors.push('red');
colors.push('green');
console.log(colors)
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sweet baby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值