ES6 第1-3章 学习笔记

10 篇文章 0 订阅
1 篇文章 0 订阅

第一章

第二章——let、const

let

只在let所在的代码块中有效

不存在变量提升
console.log(a);// 报错 a is not defined
let a = 0 ;
暂时性死区

显式

function f(){
    // a死区开始
    console.log(a)
    
    let a = 1;// a死区结束
}

隐式

function f( x = y , y = 1 ){
    // y变量在为声明前就调用了y赋值给x。
    // 由于死区问题,所以会报错
}
不允许重复声明

相同作用域下

const

常量,声明赋值后不能再改变。

声明时必须赋值,否则报错

  • 暂时性死区
  • 不允许重复声明
  • 只在当前代码块中有效
本质

const声明保存的是内存地址,所以就是指针不能变化。
对于基本类型来说,符合常量这个意思
对于引用类型来说,只能保存所指的对象地址,而不能保存对象中的属性的地址变动

const obj={}
obj.name='gem'
console.log(obj.name);// 'gem'

真正冻结一个对象Object.freeze()

// 循环冻结
var constantize = (obj)=>{
    Object.freeze(obj);
    Object.keys(obj).forEach((key,i)=>{
        if(typeof obj[key] === 'object'){
            constantize(obj[key]);
        }
    })
}

顶层对象、全局对象

global对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值