JS ----- 底层原理
什么是JS
JavaScript是一种基于对象的动态、弱类型脚本语言(简称JS),是一种解释型语言,和其他的编程语言不同,如java/C++等编译型语言,这些语言在代码执行前会进行通篇编译,先编译成字节码(机器码)。然后在执行。而JS不是这样做的,JS是不需要编译成中间码,而是可以直接在浏览器中运行,JS运行过程可分为两个阶段,编译和执行。(可参考你不知道的JS这本书),当JS控制器转到一段可执行的代码时(这段可执行代码就是编译阶段生成的),会创建与之对应的执行上下文(Excution Context简称EC)。执行上下文可以理解为执行环境(执行上下文只能由JS解释器创建,也只能由JS解释器使用,用户是不可以操作该"对象"的)。
JS 的底层运行原理
- 每调用一个函数就会生成一个执行环境(俗称执行上下文),执行上下文环境数量没有限制
- 每调用一个函数就会生成一个执行环境(俗称执行上下文),执行上下文环境数量没有限制
- 单线程
- 同步执行,只有栈顶的上下文处于执行中,其他上下文需要等待
- 每次某个函数被调用,就会有个新的执行上下文为其创建,即使是调用的自身函数,也是如此。
JS中的执行环境分为三类:
- 全局环境:当JS引擎进入一个代码块时,如遇到
<script>xxx</script>
标签,就是进入一个全局执行环境 - 函数环境:当一个函数被调用时,在函数内部就形成了一个函数执行环境
eval()
:把字符串单做JS代码执行,不推荐使用
JS ----- 底层原理的更多相关文章
- 深入研究Node.js的底层原理和高级使用
深入研究Node.js的底层原理和高级使用
- JavaScript是如何工作的: CSS 和 JS 动画底层原理及如何优化它们的性能
摘要: 理解浏览器渲染. 原文:JavaScript是如何工作的: CSS 和 JS 动画底层原理及如何优化它们的性能 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 这是专门探索 J ...
- JS原型链与instanceof底层原理
一.问题: instanceof 可以判断一个引用是否属于某构造函数: 另外,还可以在继承关系中用来判断一个实例是否属于它的父类型. 老师说:instanceof的判断逻辑是: 从当前引用的proto ...
- 《React Native 精解与实战》书籍连载「React Native 底层原理」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- Docker底层原理介绍
1.docker介绍 1.1什么是docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻 ...
- Neo4j图数据库简介和底层原理
现实中很多数据都是用图来表达的,比如社交网络中人与人的关系.地图数据.或是基因信息等等.RDBMS并不适合表达这类数据,而且由于海量数据的存在,让其显得捉襟见肘.NoSQL数据库的兴起,很好地解决了海 ...
- 【T-SQL进阶】02.理解SQL查询的底层原理
本系列[T-SQL]主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式 ...
- spring框架的IOC的底层原理
1.IOC概念:spring容器创建对象并管理 2.IOC的底层原理的具体实现: 1)所使用的技术: (1). dom4j解析xml配置文件 (2).工厂设计模式(解耦合) (3).反射 第一步:配置 ...
- 深入研究Sphinx的底层原理和高级使用
深入研究Sphinx的底层原理和高级使用
随机推荐
- springboot整合admin管理平台
server 端 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- .Net笔试考题
.NET试题 1.列举ASP.NET页面之间传递值的几种方式 2.请写出 override 与重载的区别 3.请编程实现一个冒泡排序算法 4.什么是装箱和拆箱 5.ADO.net中常用的对象有哪些?分 ...
- luogu 2993 [FJOI2014]最短路径树问题 Dijkstra+点分治
挺简单的,但是给人一种把两个问题强行弄到一起的感觉. 十分不好写. Code: #include <queue> #include <cstdio> #include < ...
- TTTTTTTTTTTTTTT poj 2932 Coneology 平面扫描+STL
题目链接 题意:有n个圆,圆之间不存在相交关系,求有几个不被其他任何圆包含的圆,并输出圆的编号: #include <iostream> #include <cstdio> # ...
- 【PKUSC2019】树染色【线段树合并】【树形DP】
Description 给出一棵n个点的树,现在有m种颜色,要给每个节点染色,相邻节点不能同色. 另外有k条限制,形如x号点不能为颜色y 同一节点有可能有多条限制. 求方案数对998244353取模的 ...
- BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (Burnside引理、组合计数)
题目链接 (Luogu) https://www.luogu.org/problem/P4727 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.ph ...
- AcWing:105. 七夕祭(前缀和 + 中位数 + 分治 + 贪心)
七夕节因牛郎织女的传说而被扣上了「情人节」的帽子. 于是TYVJ今年举办了一次线下七夕祭. Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩. TYVJ七夕祭和11 ...
- Unity3D_(游戏)控制物体的上、下、左、右移动
通过键盘上↑.↓.←.→实现对物体的控制 using System.Collections; using System.Collections.Generic; using UnityEngine; ...
- perl基础-2
函数参数 perl 函数参数为$$,$$$,$@ Perl 可以通过函数元型在编译期进行有限的参数类型检验. 如果你声明 sub mypush (+@)那么 mypush() 对参数的处理就同内置的 ...
- C++入门经典-例5.6-指针与const
1:同其他数据类型一样,指针也有常量,使用const关键字定义,形式如下: int i=9; int *const p=&i;//无法改变内存指向 *p=3; 将关键字const放在标识符前, ...