JS变量声明的六种方式
JS存在6种声明变量的方式,分别为:var、let、const、function、class、import。
# var
在ES5阶段,用var声明变量,var的特点:
- 没有块的概念,可以跨块访问,不能跨函数访问;
- 存在变量提升。
# let
在ES6阶段,出现了块级作用域,同时新增let命令,let声明的变量有以下特点:
- 声明的变量为块级作用域,只在它所在的代码块有效;
- 不存在变量提升,变量需要先声明后再使用,否则会报错;
- 暂时性死区。在代码块内,使用let声明变量之前,该变量都不可用;
- 不允许重复声明。
# const
const用于声明一个只读的常量,特点:
- 一旦声明就必须同时初始化;
- 一旦声明,常量值就不能改变了(指的是内存地址不能改变);
- 块级作用域;
- 不存在变量提升;
- 存在暂时性死区。
提示
const保证的并不是变量的值不能改变,而是变量指向的内存地址不能改变。对于简单类型的数据,值就保存在变量指向的内存地址中,因此相当于常量。对于复合类型的数据,常量指向的内存地址保存的是一个指针,
编辑 (opens new window)
上次更新: 2022/04/26, 21:54:00