关于var,let,const的那点事

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

1、const关键字
它的作用就是定义一个常量,一旦定义没法变动,不能反复声明掩盖;

《关于var,let,const的那点事》

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关键字定义

《关于var,let,const的那点事》

第一个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。
    原文作者:泽浩沉
    原文地址: https://segmentfault.com/a/1190000008426460
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞