zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ES6 从入门到精通 # 02:let 和 const 命令

2023-03-14 22:50:03 时间

说明

ES6 从入门到精通系列(全23讲)学习笔记。



let

1、let 声明变量,没有变量提升

console.log(kaimo);
let kaimo = 10;


41c7807c71a74f0bb9c5b6e3134bb06b.png



2、是一个块作用域

console.log(kaimo)
if(true) {
    let kaimo = 666;
}


96897b30e5974108a20fa53abfe7b9bb.png


3、不能重复声明

let kaimo = 666;
let kaimo = 777;


46ca0d41497348459477c9d0377ad870.png


const


const 除了 let 的三个特性,还有下面的特性:

1、声明常量,一旦被声明,无法修改

const kaimo = 666;
kaimo = 777;


15606c4e65414a87bf404a7fd089ac1f.png


2、可以声明对象,并能修改对象里面的属性值

const kai = {
    mo: 666
};
kai.mo = 777;


ad73b3649b534541988377c3e2ea6040.png

数组也可以修改元素的值:

const a = [1,2,3];
a[0] = 4


43936530c4d442799e981d5a786be0b4.png



作用

作用1、解决 for 变量提升的问题

var arr = [];
for(var i = 0; i < 10; i++) {
    arr[i] = function() {
        return i;
    }
}
arr[6]();


1f0e97c97eb3497ca03d0420a04eaf3d.png


使用 let 跟 const 修改:

const arr = [];
for(let i = 0; i < 10; i++) {
    arr[i] = function() {
        return i;
    }
}
arr[6]();


5c01cc4de373460aae7179456e71e693.png


作用2:不会污染全局变量

let RegExp = 10;
console.log(RegExp);
console.log(window.RegExp);


49bad0275ec248a0b0ac30507b11bd7d.png


建议:在默认的情况下用 const,而只有在你知道变量值需要被修改的情况下使用 let。