美文网首页
js执行相关概念

js执行相关概念

作者: bear_new | 来源:发表于2018-01-28 11:38 被阅读0次

1. 栈内存和堆内存

  • 栈内存

连续的存储空间,类似数据结构中的栈,用于存放数值,字符,内存地址等小数据。

基本类型数据的值被保存在栈内存中。

Number,String,Boolean,Null,Undefined
  • 堆内存

散列的存储空间,类似于数据结构中的链表,存放动态变化的大数据。

引用类型的值被保存在堆内存中,栈内存中仅保存堆内存的地址。

Object,Array,Function

2. 变量作用域

  • 全局变量
  • 局部变量

当函数在执行时,会创建一个封闭的执行期上下文环境,函数内部声明的变量仅可在函数内部使用,外部无法访问,而全局变量则在任何地方都可以使用

3. JS预编译

  1. 语法分析

通篇扫描js文件,检查是否有低级语法错误

  1. 预编译4部曲

未进入执行阶段,变量对象VO(variable object)都不能访问,进入执行阶段后,变量对象VO转变为了活动对象AO(active object),里面的属性都能被访问了,然后开始执行阶段的操作。

Index Content
第一步 创建AO对象(执行期上下文对象,全局为GO)
第二步 将形参和变量声明作为AO对象的属性名,值为Undefined
第三步 将实参值传递给形参,即赋值给AO对象对应属性名
第四步 将函数声明为AO对象的方法名,值为函数体
  1. 解释执行:解释一行,执行一行。
function test(a){ 
  var b=1; function c(){}  
}
test(2);
// 函数预编译四部曲(函数执行前一刻,不执行不会预编译),全局预编译同理
1---testAO
    {}
2---testAO
    {a:undefined,b:undefined}
3---testAO
    {a:2,b:undefined}
4---testAO
    {a:2,b:1,c:function(){}} 

相关文章

  • js执行相关概念

    1. 栈内存和堆内存 栈内存 连续的存储空间,类似数据结构中的栈,用于存放数值,字符,内存地址等小数据。 基本类型...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? 解释白屏和FOUC async和defer的作用是什么?有什么区别 简述...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? css放在head中,用link标签引入: JS放在body中,且在所有...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? CSS要放头部head中的link标签内引入。js文件要放在 标签中,...

  • JS相关概念

    JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型? 判断一个变量是否是数字、字符串、布尔...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? css放到head标签内 js一般放到body尾部,因为js会涉及dom...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? 一般将css放置head里用包裹,也可以使用link标签引入。js一般使...

  • JS相关概念

    1,CSS和JS在网页中的放置顺序是怎样的? 网站加载的整个完整过程是:1、首先浏览器从服务器接收到html代码,...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? CSS写在HTML文件中的 标签内的 中,JS写在HTML中 标签...

  • JS相关概念

    1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签内,防止渲染时出现白屏 js放在最后body...

网友评论

      本文标题:js执行相关概念

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