博客列表 >JS与内存-初

JS与内存-初

南瓜又个梦
南瓜又个梦原创
2021年06月05日 21:31:34562浏览

在运行JS之前发生了什么,一些需要知道的概念

  1. 浏览器
    (1)浏览器的功能(在地址栏输入网址后浏览器做了些什么):发起请求,下载HTML文件,解析HTML文件,下载css文件,解析css文件,渲染界面,下载JS,解析JS,执行JS
    (2)功能模块:用户界面,渲染引擎,JS引擎,储存等
  2. JS引擎
    (1)主要功能:
    编译:把JS翻译成机器能执行的语言
    优化:改写代码,使代码更高效
    执行:执行上面编译的字节码或者机器编译码
    垃圾回收:内存释放
    (2)执行之前有什么,有一个运行环境runtime env
  3. js代码放的地方在内存,放的结构如下

    JS内存图解

(1)不知道什么区放变量,
不知道什么区是因为每个浏览器会有不同的放置和命名
Stack:存储方式是按块和顺序存储,存储非对象类,
Heap:存储方式是随机储存,存放的是对象

(2)对象被篡改
篡改对象只能对当前对象篡改,不能篡改它的父对象的相关值,就是只能改一层,不能改两层。
(3)JS要有什么
要有:Windows,document,console,对象,数组,函数。

为什么什么都要挂在Windows上,因为挂在Windows上后哪里都可以用了。
window对象和window变量不是一个东西,window对象是heap里的一堆数据,window变量是一个容器放window对象的地址

  1. 原型链
    console.dir()可以打印出当前对象的结构,包含的函数。
    每声明一个对象,都有隐藏的属性,都有一个特定的原型,这样做让我们定义一个新的某个变量或者对象时更加简洁。
  2. 以大写字母开头的隐藏属性由prototype代指(对象),以小写字母开头的对象由proto代指(变量)。
    XXX.prototype,储存了XXX对象的共同属性
上一条:JS基本语法下一条:0525实战作业
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议