美文网首页
js关于内存空间以及相关知识点(上)

js关于内存空间以及相关知识点(上)

作者: a4316976150e | 来源:发表于2017-02-19 00:06 被阅读0次

                                                     栈内存存取示意图

栈内存的存取方法就好像一个兵乓球盒子,第5 个球肯定是最后放入的,也是要最先使用的,如果要使用第1个球,那要先将第一个球上面的所有球释放使用掉。栈内存的使用方式是"先进后出,后进的先出"。

堆内存的方式就好像书和书架的关系,只要知道书的名字,就可以自由去书架上寻找相对应的书。

基本数据类型和引用数据类型

js有六种基本数据类型,分别为:String,Number,Boolean,Null,Undefined。基本数据类型是按值来保存的,所以我们可以直接操作保存在变量当中的基础对象的值。

js有三种引用数据类型,分别为:Object,Function,Array.引用类型是按堆内存来保存的,变量保存一个引用数据类型会将值保存到堆内存当中。js不允许直接操作保存在堆内存当中的值,所以我们实际操作的是堆内存的一个引用而已。所以我们操作一个引用类型的值时,是先获取它保存在堆内存当中的引用,然后根据引用去获取堆内存的值。

执行上下文

js当中当遇到一个可执行的代码块时,会进入一个执行上下文,意思就是它的当前的可执行坏境。也就是会创建一个作用域。可执行的代码块有三种情况

1;全局环境   //当执行代码时,最先进入全局环境

2;函数环境  //当一个函数被调用执行时,会进入它的局部函数环境

3;evel;

当代码在执行过程中,遇到以上三种情况时,会进入一个执行上下文,将其放入栈中,当处于栈顶中的执行上下文执行完毕后,会从栈中弹出。以下是例子

上面的例子中,首先入栈的是全局环境,然后执行中碰到了changeColor函数,然后changeColor入栈,

然后执行changgeClolor函数的时候碰到了swap函数,swap函数入栈。当swap函数执行完毕后,出栈,然后changeColor函数出栈。当浏览器关闭之后,全局环境出栈。

注意,函数当遇到return时,会直接将当前上下文弹出栈。不会继续执行

执行上下文的几个关键点

1,全局上下文只有一个,

2;单线程

3,函数的执行上下文是没有个数限制的

4,当一个函数执行时,会创建一个执行上下文,即使时它自己本身的函数被调用。

相关文章

  • js关于内存空间以及相关知识点(上)

    栈内存存取示意图 栈内存的存取方法就好像一个兵乓球盒子,第5 ...

  • Android 程序员搞 web 之 js基础(九)

    Android 程序员搞 Web 之 进阶(八) 一、js基础知识 以及 WebStorm 的相关知识点 js 主...

  • 多线程

    前言 今天我们主要看看关于线程与进程的一些面试相关的知识点,以及引发出来的多线程的相关知识点。 1. 线程、进程的...

  • js的浅拷贝与深拷贝

    js的浅拷贝与深拷贝 涉及知识点: js中的数据类型(基本类型,引用类型) js中的存储数据的堆栈相关知识点; 下...

  • 面试必备干货-css篇

    总结一下我上一次去面试的时候面试官问的几个关于css的相关问题。下一篇,我会总结下问的js以及vue相关的面试问题...

  • Javascript原型理解(面试篇)

    本文是学习JS原型相关知识后的总结与笔记:学习文章参考《一文吃透所有JS原型相关知识点》 在面试中会被经常问到JS...

  • Android性能优化--内存优化

    内存检测的思路 静态检测 -> 工具检测 -> 修复 相关知识点 JAVA 的内存回收机制,内存空间中垃圾回收的工...

  • 2018-08-22

    今天简单了解了一下关于js对象的知识点。包括JS 数字 JS 字符串 JS 日期 JS 数组 JS 逻辑 JS 算...

  • 集成学习

    序 本次以及后续几次博客将陆续记录关于集成学习模型的相关知识点。 Ensemble概述 集成学习 就是构造若干模型...

  • Three.js 入门详解

    本文主要是讲解 Three.js 的相关概念,帮助大家对 Three.js 以及相关知识形成比较完整的理解。今年来...

网友评论

      本文标题:js关于内存空间以及相关知识点(上)

      本文链接:https://www.haomeiwen.com/subject/vnmdwttx.html