返回

JS基础--内存图与JS世界

前端

  1. JS运行机制

JS是一种解释型语言,这意味着JS代码不是在编译时一次性全部转换成机器码,而是在运行时逐行解释执行的。JS引擎是负责解释和执行JS代码的程序,它将JS代码转换成机器码,并在计算机上执行。

2. JS内存图

JS内存图是一个抽象的概念,它了JS代码在计算机内存中的存储方式。JS内存图主要分为以下几个部分:

  • 栈(Stack) :栈是内存中的一块连续空间,用于存储函数调用信息,包括函数参数、局部变量和返回地址等。
  • 堆(Heap) :堆是内存中的一块非连续空间,用于存储动态分配的内存空间,包括对象、数组等。
  • 全局对象(Global Object) :全局对象是JS运行时环境中内置的一个对象,它包含了所有的全局变量和函数。
  • 原型(Prototype) :原型是JS中的一种特殊对象,它用于存储对象的属性和方法,当一个对象没有某个属性或方法时,会去它的原型中寻找。

3. JS世界

JS世界是一个虚拟的环境,它由JS引擎和JS代码组成。JS世界与真实世界是隔离的,这意味着在JS世界中发生的事情不会影响真实世界,反之亦然。

4. JS功能模块

JS功能模块是将JS代码组织成一个个独立的模块,每个模块都有自己的作用域和变量。JS功能模块可以帮助我们更好地组织和维护JS代码,提高代码的可读性和可维护性。

5. JS变量类型

JS变量类型有以下几种:

  • 数值类型(Number) :包括整数(Integer)和浮点数(Float)。
  • 字符串类型(String) :由一串字符组成。
  • 布尔类型(Boolean) :只有两个值:true和false。
  • 对象类型(Object) :可以存储任意数据类型的值,包括其他对象。
  • 数组类型(Array) :可以存储任意数据类型的值,包括其他数组。
  • 函数类型(Function) :用于定义函数。
  • 未定义类型(Undefined) :表示变量还没有被赋值。
  • 空类型(Null) :表示变量的值是空的。

6. JS变量作用域

JS变量的作用域是指变量在哪些地方可以被访问。JS变量的作用域有以下几种:

  • 全局作用域(Global Scope) :在JS代码的任何地方都可以访问的变量。
  • 局部作用域(Local Scope) :只能在函数内部访问的变量。
  • 块级作用域(Block Scope) :只能在代码块内部访问的变量。

7. JS变量声明提升

JS变量声明提升是指在执行JS代码之前,所有变量声明都会被提升到当前作用域的顶部。这意味着即使变量在代码中被声明在使用之前,也可以在使用之前访问它,但值是undefined。

8. JS操作符

JS操作符用于对变量和值进行操作,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。

9. JS条件语句

JS条件语句用于根据条件来执行不同的代码,包括if语句、switch语句等。

10. JS循环语句

JS循环语句用于重复执行一段代码,包括for循环、while循环、do-while循环等。