let,const,var定义变量的区别?
一,作用域
const和let:没有变量提升,且定义的变量只在let命令所在的代码块生效,在定义之前使用,会报错
var :变量会被提升,在全局范围内都有效,且可在变量定义之前使用
二、重复声明
const和let:在同一作用域内,不允许重复声明同一个变量
var:允许重复声明
三、赋值
let 和var:可以只声明,不赋值
const:只能定义一个只读的常量,定义后不能再改变,不允许只声明不赋值
需要注意的是,对于对象、数组等数据类型,const定义保存的只有数据的指针,所以数据结构是可变的
四、适用场景
1.为了安全,大部分情况下var可以用let来替代,尤其是for循环中定义循环变量,使用let可以避免变量污染
2.定义常量就使用const
3.有些老版本的浏览器不兼容let和const,就只能用var

浙公网安备 33010602011771号