JS基础——基于V8底层渲染机制变量提升机制、闭包、作用域、垃圾回收机制、函数执行过程、手撕call方法、bind预处理....

变量提升

数据类型核心操作原理

基本数据类型(值类型)
  • number:数字
  • string:字符串
  • boolean:布尔类型
  • null:空对象指针
  • undefined:未定义类型
  • bigint:大数类型
  • symbol:唯一值类型引用数据类型 是操作地址的
  • 标准普通对象{}
  • 标准特殊对象
  • []数组
  • /^ $/正则 RegExp
  • Math
  • Date
  • ……
可执行(调用)对象 funtion(){}
非标准特殊对象

js代码运行在浏览器中,是因为浏览器给我们提供了一个供js代码执行的环境=>全局作用域(window/global)
栈内存:作用域
1.提供一个供代码自上而下执行的环境
2.存储基本数据类型,值存储=>当栈内存被销毁,存储的基本值也被销毁了
堆内存:引用值对应的空间
1.存储引用数据类型的=>当堆内存被销毁,引用值彻底消失
堆内存释放:当堆内存没有任何变量或者其他东西占用,浏览器会在空闲的时候,自主的进行内存回收,把所有不被占用的堆内存销毁掉(谷歌浏览器) xxx=null
变量提升
当栈内存(作用域)形成,js代码执行之前,浏览器会把所有带有var/function关键词的进行提前‘声明’或者‘定义’,这种预先处理机制称之为‘变量提升’。
声明(declare):var a(默认值undefined)
定义(defined):a=12(定义其实就是赋值操作)
【变量提升阶段】
• 带var的值只声明不定义;带function的既声明又定义。
• 只提升等号左边的变量。
• 不管条件成不成立,都要进行变量提升。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南笙前端工程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值