javascript中有三种声明变量的方式:var、let、const
var声明全局变量
let用于声明变量 与var相似 但所声明的变量只在let命令所在的代码块内有效
const声明一个只读的常量 ,声明后其值不可改变 ,
let const相同点:
- 块级作用域:只在声明所在的块级作用域内有效
- 不存在常量提升:只能在声明后使用, 存在暂时性死区:在代码块内,使用声明命令之前 改变量/常量都是不可用的
- 不可重复使用:不可以在相同的作用域内重复声明同一个变量
不同点:
const声明的变量不能改变值,也是由于这个规则,const一旦声明常量就必须立即初始化,不能留到以后赋值
注:const实际上不是变量的值不得更改动 而是变量指向的那个内存地址不得改动
基本数据类型 :值就保存在变量指向的内存地址
复合(对象和数组):变量指向的内存地址保存的只是一个指针
可参考es6标准入门第2章