关于var,let,const的那点事

ES6中let与var的区别
本文探讨了ES6中let与var关键字的区别,重点分析了变量声明、作用域及变量提升等方面的不同,并通过示例代码进行说明。

一直使用var定义变量,ES6的出现给变量定义增加了两个大将let,const。那它们有什么区别呢。

1、const关键字
它的作用就是定义一个常量,一旦定义无法更改,不能重复声明覆盖;

clipboard.png

const一般在require一个模块的时候用或者定义一些全局常量。

主要是比较一下var和let的使用;

2、var 关键字定义

function test(){
    for(var i=0;i<2;i++){
         console.log('for循环内:'+i);
    }
    console.log(j);
    alert(j);
    console.log('for循环外:'+i);
    var j='hi';
}
test();
第一个for循环里的console输出for循环内:0,for循环内:1;
第三个console输出for循环外:2;
第二个console输出undefined;
alert输出undefined;

3、let关键字定义

clipboard.png

第一个for循环里的console输出for循环内:0,for循环内:1;
第三个console输出 i is not defined,报错啦;
第二个console输出 空
alert(j)输出undefined。

比较后发现,
var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象;
let声明的变量,其作用域为该语句所在的代码块内,且不能重复声明覆盖;
很多人说let有没有变量提升的作用,但是上面测试的例子,console输出空,alert输出undefined,都没有报error,所以对于let声明变量提升的问题,暂时保留怀疑。
let 声明的变量,块作用域,不重复声明覆盖,限制了变量的作用域,保证变量不会去污染全局变量,所以尽量将var改为用let。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值