JS的运行机制

1.当浏览器(它的内核/引擎) 渲染和解析js的时候,会提供一个供js代码运行的环境,我们把这个环境
     称为  全局作用域 (global/window scope)
  2  代码自上而下执行 (之前还有一个变量提升阶段)
      基本数据类型的值会存储在作用域下
 var a =12;
 1)首先开辟一个空间储存12
 2)在当前作用域中声明一个变量a  (var a)
 3)让声明的变量和存储的12进行关联(把存储的12赋值给a=>赋值操作叫做定义)

 基本数据类型(也叫做值类型),是按照值来操作的;把原有的值复制一份?
放到新的空间或者位置上,和原来的值没有关系。

 引用数据类型的值不能直接存储到当前的作用域下(因为存储的内容过于复杂)
物品们需要先开辟一个新的空间(理解为仓库),把内容储存到这个空间中
 var obj1 ={n:100};
 1)首先开辟一个新的内存空间,把对象中的键值对依次存储起来(为了保证后面可以找到这个空间,此空间有一个16进制的地址)
 2)声明一个变量
 3)让变量和空间地址关联在一起(把空间地址赋值给变量)
 引用类型不是按值来操作,它操作的是空间的引用地址:把原来空间地址赋值给新的变量,
但是原来的空间没有被克隆。还是一个空间,这样就出现多个变量关联的是相同空间,相互之间就会存在影响了。

栈内存:本身是一个供js代码执行的环境 所有的基本类型值都会直接的在栈内存中开辟一个位置进行存储
堆内存: 用来存储引用类型中的信息值的用对象存储的是健值对  函数存储的是代码字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值