let和const的区别是什么


本文摘自PHP中文网,作者青灯夜游,侵删。

区别:let声明的变量可以改变,值和类型都可以改变;而const声明的常量不可以改变,这意味着,const一旦声明,就必须立即初始化,不能以后再赋值。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

相关推荐:《javascript视频教程》

let和const的不同点:

① let声明的变量可以改变,值和类型都可以改变;const声明的常量不可以改变,这意味着,const一旦声明,就必须立即初始化,不能以后再赋值。

1

2

3

const i ; // 报错,一旦声明,就必须立即初始化

const j = 5;

j = 10; // 报错,常量不可以改变

② 数组和对象等复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const只保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个复合类型的变量声明为常量必须非常小心。

1

2

3

4

5

6

7

8

9

const arr = [];

// 报错,[1,2,3]与[]不是同一个地址

arr = [1,2,3];

const arr = [];

// 不报错,变量名arr指向的地址不变,只是数据改变

arr[0] = 1;

arr[1] = 2;

arr[2] = 3;

console.log(arr.length); // 输出:3

若想让定义的对象或数组的数据也不能改变,可以使用object.freeze(arr)进行冻结。冻结指的是不能向这个对象或数组添加新的属性,不能修改已有属性的值,不能删除已有属性。

1

2

3

4

5

6

7

const arr = [];

Object.freeze(arr);

// 不报错,但数据改变无效

arr[0] = 1;

arr[1] = 2;

arr[2] = 3;

console.log(arr.length); // 输出:0

let和const的相同点:

① 只在声明所在的块级作用域内有效。

② 不提升,同时存在暂时性死区,只能在声明的位置后面使用。

③ 不可重复声明。

更多编程相关知识,请访问:编程入门!!

以上就是let和const的区别是什么的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

let和const的区别是什么

js中let和var的区别

何时在javascript中使用const关键字?

javascript中的let是什么

javascript中var、let和const之间有什么区别?

javascript中const和object.freeze()的差异

javascript中的var和let的区别(代码示例)

javascript中什么是const

react中const是什么

了解javascript中object.freeze()与const之间的区别

更多相关阅读请进入《let》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...