let和const的区别以及let和var的区别

在es6中新增了块级作用域。块级作用域由{}包括,if语句和for语句里面的{}也属于块作用域

let和const都是es6新增的声明方式

let和const的区别

let用于声明变量,比如

let num=1;

num=2;(这时num的值就变成了2)

而const用来声明常量,并且声明之后就不能改变

比如 cosnt pi=3.14;

补充:

const obj={a:3};

obj.a=4;

我们用const会更好一点,因为const实际上保证的不是变量的值不能改变,而是变量的指向的内存地址不得改变。对于简单的数据(数字,字符串,布尔值),值是保存在变量指向的那个内存地址中,因此也等同于常量。

但是如果遇到以下情况只能用let

let obj={a:3};

obj={a:4}

let和var的区别

1.let具有块级作用域,let内声明的变量只在块级作用域内有效。var声明的变量是全局的,

2.var存在变量提升,前置声明输出的是undefined,而let前置声明会报错,我们称之为暂时性死区,

3.let不能重复声明同一个变量而var可以,

4.var声明的变量会挂载到window上,而let声明的变量不会。

猜你喜欢

转载自www.cnblogs.com/lmm1010/p/12974522.html
今日推荐