javascript怎么运行代码,javascript怎么运行程序

大家好,小编来为大家解答以下问题,javascript怎么运行代码,javascript怎么运行程序,今天让我们一起来看看吧!

  • 我们在学习前端的知识时,必定会学习我们的JavaScript的内容,那么JavaScript是如何执行的呢?
  • 假如我们有以下的执行代码,那么代码是如何执行的呢
    var name = 'why';
    var num1 = 20;
    var num2 = 30;
    var result = num1+num2;
    console.log(result);
  •  那么我们接下来探讨一下JavaScript代码的执行过程。
一、初始化全局对象
  1. Js引擎会在执行代码之前,在堆内存中创建一个全局对象:Global Object(我们简称Go).  
    该对象所有的作用域都可以访问;
    里面会包含Date、Array、String、Number、setTimeout、setInterval等等;
    其中里面还有一个window属性指向自己
  2. 以下是:Global Object对象的伪代码
    var globalObject = {
        String : '类',
        Date : '类',
        setTimeount : '函数',(等等)
        window : globalObject,
    }
二、执行上下文栈
  1. 什么是js的执行上下文栈(Excution Context Stack =>ECS)?
    简单来说js的执行上下文栈就是解析和运行js代码的一个调用栈,我们所有的js代码经过解析之后都会在这个执行上下文栈(即调用栈)中执行GPT改写
  2. 执行上下文栈中包含着两种执行上下文
    (1).Global Excution Context 全局执行上下文(GEC)--->全局代码块为了执行会构建GEC.
    (2).Function Ecution Context 函数执行上下文(FEC)--->执行函数会构建FEC.
    注意:以上两者都会被放在Excution Context Stack(ECS)中执行.
  3. 执行上下文栈和全局执行上下文的关系:
    (1).在代码执行前,在parse转成AST的过程中,会将全局定义的变量、函数等加入到Global Object中,但是并不会赋值,此时的值为undefined,这个过程也称为变量作用域的提升.
    (2).在代码执行中,对变量赋值或者执行其他函数.
  4. 执行上下文栈和函数执行上下文的关系:
    (1).在执行代码的过程中执行到一个函数时,就会根据函数体创建一个函数执行上下文(Function Excution Context,简称FEC),并压入执行上下文栈中(ECS).
    (2).FEC中包含三部分内容:
    <1>第一部分:在解析函数成为AST树结构时,会创建一个Activation Object(AO):AO中包含形参、arguments、函数定义和指向函数的对象、定义的变量;
    <2>第二部分:作用域链:由VO(在函数中就是AO对象)和父级VO组成,查找时会一层层查找;
    <3>第三部分:this绑定的值。
    Function Exection Context
    VO:形参/arguments/function/变量
    Scope Chain(作用域链):VO/Parent VO
    thisValue:根据不同的情况绑定this
三、简单变量的执行

 四、函数的执行

五、总结

要掌握好JavaScript的执行过程,首先要清楚代码是在执行上下文栈中执行的,其次掌握好作用域的提升和JavaScript在v8引擎中的解析过程。以上是个人的学习心得,如有误导麻烦大佬们指点啦!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值