【学习JS 】JS概述

JS概述

浏览器的功能

  • 发起请求,下载 HTML,解析 HTML,下载 CSS,解析 CSS,渲染界面,下载 JS,解析 JS,执行 JS等
  • 功能模块:用户界面、渲染引擎JS引擎、存储等
    这些模块一般各处于不同的线程

JS 引擎

  • JS引擎的主要功能
    • 编译:把JS代码翻译为机器能执行的字节码或机器码
    • 优化:改写代码,使其更高效
    • 执行:执行上面的字节码或者机器码
    • 垃圾回收:把JS用完的内存回收,方便之后再次使用

执行 JS 代码

  • 准备工作
    • 提供API:window / document / setTimeout
      这些功能都不是JS自身具备的功能,这些功能成为运行环境 runtime env
  • 内存
    当打开Chrome时,Chrome会占据一部分内存,同时辅助进程也会占据一部分内存
    当打开页面时,同样占据内存,在页面中有以下部分会占据内存:
    渲染线程、用户界面、JS引擎等
    • 在JS引擎中,分为代码区,环境和变量区和数据区
      代码区存放代码,环境和变量区存放环境和变量,数据区存放数据
    • 在数据区里包含 StackHeap
StackHeap

数据区分为Stack栈Heap堆
数据分为两种:非对象和对象

  • Stack 特点:每个数据顺序存放,非对象都存在Stack
  • Heap 特点:每个数据随机存放,对象都存在Heap

= 总是会把右边的东西复制到左边


注意

  • window 变量window 对象是不同概念,window 变量是一个容器,存放window 对象的地址,window 对象是Heap里的数据
  • 同理,consoleconsole对象ObjectObject函数对象 ,前者是内存地址,后者是内存

JS 原型链

  • XXX.prototype 存储了 XXX 对象的共同属性 — 这就是原型
    原型让你无需重复声明共有属性
  • 每个对象都要一个隐藏属性 命名为 _ _ proto _ _
    指向原型(对象)
  • prototype 和 _ _ proto _ _ 的区别
    • 都存着原型的地址
    • prototype 挂在函数上
    • _ _ proto _ _ 挂在每个新生成的对象上
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值