JavaScript基础 - 25 (变量声明方式:var、let、const)

1、var:变量提升 并赋值为 undefined; 全局污染

2、let:变量提升 并处于暂存死区状态, 无法使用,会报错 Cannot access 'xxx' before initialization

        配合{} 可以实现 块级作用域,块级作用域特征,在全局声明的变量,将会存储在独立的Script空间中,与window对象同级别,需要通过断点方式才能查看

       不能在用一个作用域中,重复声明同名变量

3、const: 常量, 声明时必须同时赋值, 后期无法修改

        不可更改 指的是 不可重新赋值, 但是 如果值是对象类型, 可以修改对象类型中的值

        对象类型特殊,obj存储的是对象的地址,不能把obj存储的地址改成其他的,但是可以修改对象的内容

        a = {name:'ddd'}

        a = {age:222}  //不可以

        a.age = 444  //可以

4、let 和 var 的差别:

let是ES6中提供的,代替var的变量声明方式

      var的缺点:变量提升+var声明的变量都会存储在window中,造成全局污染

      let 没有全局污染,声明的变量存储在一个与window同级别的脚本区域,专门存储自定义变量

5、var、let、const三者的区别?

1、var声明的变量,存在变量提升,允许重复声明,只有在函数内声明才是局部变量,不存在块级作用域

2、let声明的变量,不存在变量提升,不允许重复声明

3、const声明的常量,声明后必须赋值,不允许重新赋值

4、let、const在函数中和块级作用域下都是局部的,存在块级作用域

5、let、const在全局作用域下声明的也不是全局的

6、var在全局作用域声明的是全局变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值