let和const

let命令

ES6新增了let命令,用来声明变量,类似于var,但是所声明的变量,只在let命所在的代码块内有效。

for循环的计数器,就很适合使用let。

let命令不存在变量提升,它所声明的变量,一定要在声明后才能使用,否则会报错。var可以变量提升。

let不允许在相同作用域内,重复声明同一个变量(一样的变量名)。

const命令

const声明一个只读的常量,一旦声明,常量的值就不能改变。

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

const的作用域和let相同:只在声明的块级作用域内有效。

const声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后边使用。

和let一样不可重复声明。

const保证的,并不是变量的值不可以改变,而是变量指向的那个内存地址所保存的数据不得改动。

对于简单类型的数据,如数值、字符串、布尔值,值就保存在变量指向的那个内存地址,因此等同于常量。

但是对于复合类型的数据(主要指对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的,至于它所指向的数据结构是不是可变的,就完全不能控制了。

ES6声明变量的6种方法:

var

function

let

const

import

class

你可能感兴趣的:(let和const)