iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >你了解JavaScript的js运行三部曲吗
  • 313
分享到

你了解JavaScript的js运行三部曲吗

2024-04-02 19:04:59 313人浏览 泡泡鱼
摘要

目录1.1 语法分析1.2 预编译 1.2.1 函数声明整体提升1.2.2 变量 声明提升1.2.3 imply global暗示全局变量1.2.4 预编译四部曲(预编译发

1.1 语法分析

预编译之前,先通篇扫描看看有没有语法错误

1.2 预编译 

1.2.1 函数声明整体提升

声明函数的时候不管你写到哪里,都会把这个函数整体提升到最前面

1.2.2 变量 声明提升

只是把var a;提升到前面去,输出结果为undefined,声明提升

document.write(a);

var a=123;

1.2.3 imply global暗示全局变量

1. 定义:即任何变量,如果变量未经声明就赋值,此变量就为全局对象(window)所有

eg:a=10;

----------> window.a=10;

 上面的代码:var声明了a,从右到左赋值,先将123赋给b,再给a,导致的结果就是b没有声明,即变为全局变量window所有,打印window.b有结果123,window.a没结果undefined。

2. 一切声明的全局变量,全是window(全局的域)的属性

1.2.4 预编译四部曲(预编译发生在函数执行的前一刻)

1.创建AO对象(Activation Object)活跃对象(作用域=执行器上下文),全局变量是Go(global object==window)

2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined

3.将实参值和形参统一(全局变量就没这步了)

4.在函数体里面找函数声明,值是函数体

例1:

建立函数

预编译看过的地方,执行函数的时候就不用在看了,下面是函数执行结果

例2:

 函数执行完后打印出  1,2,2

 例3:

最后函数执行完了才把a变成10

例4:

1.3 解释执行

线程,解释一行执行一行

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!     

--结束END--

本文标题: 你了解JavaScript的js运行三部曲吗

本文链接: https://www.lsjlt.com/news/138545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 你了解JavaScript的js运行三部曲吗
    目录1.1 语法分析1.2 预编译 1.2.1 函数声明整体提升1.2.2 变量 声明提升1.2.3 imply global暗示全局变量1.2.4 预编译四部曲(预编译发...
    99+
    2024-04-02
  • 带你了解JavaScript的运行原理
    目录浏览器内核JavaScript 引擎V8 引擎了解JavaScript 是如何运行的,以及的它的运行机制,首先,我们要了解浏览器的内核: 浏览器内核 了解过的都知道:不同的浏览器...
    99+
    2024-04-02
  • JavaScript中的预解析你了解吗
    JS的预解析是指在代码执行之前,JavaScript引擎会先对代码进行一次扫描,将变量声明和函数声明提升到当前作用域的顶部,以便在代码执行时能够正确地访问这些变量和函数。这个过程也被...
    99+
    2023-05-20
    JavaScript预解析学习 JavaScript预解析使用 JavaScript预解析
  • JavaScript的事件流你了解吗
    目录1. 什么是事件流?2. 事件流模型2.1)事件冒泡2.2)事件捕获3. DOM事件流总结1. 什么是事件流 ? 在学习事件流之前我们先看...
    99+
    2024-04-02
  • Java中的内部类你了解吗
    目录成员内部类1.定义2.成员内部类的使用规则 3.成员内部类对象的创建:4.内部类与静态域静态内部类:1.定义:2.静态内部类的使用规则:3.静态内部类对象的创建&nbs...
    99+
    2024-04-02
  • C++的运算符你真的了解吗
    目录前言1 算术运算符2 赋值运算符3 比较运算符4 逻辑运算符总结前言 运算符的作用:用于执行代码的运算 主要有: 1 算术运算符 用于处理四则运算 对于前置递增:将递增运算前...
    99+
    2024-04-02
  • JavaScript的面向对象你了解吗
    目录1. 面向对象编程介绍1.1 两大编程思想1.2 面向过程编程 POP(Process - oriented - programming)1.3 面向对象编程 OOP(Objec...
    99+
    2024-04-02
  • JavaScript的事件监听你了解吗
    目录1. 什么是事件监听?2. DOM0级事件监听2.1)常见的页面事件监听2.2)常见的鼠标事件监听2.3)常见的键盘事件监听2.4)常见的表单事件监听3.&e...
    99+
    2024-04-02
  • C语言的运算符你了解吗
    目录前言一、算数运算符(数学运算) + -* / %二、逻辑运算符(判断真假)|| &&> >= < <=!? : ...
    99+
    2024-04-02
  • Java的三大版本,你有了解过吗?
    目录 一、JavaSE 二、JavaME 三、JavaEE   一、JavaSE JavaSE是Java平台的标准版,它提供了Java语言的核心API和基本功能,适用于开发普通的桌面应用程序、命令行工具和服务器端应用程序等。下面是一个简...
    99+
    2023-09-14
    java 开发语言
  • javascript的防抖和节流你了解吗
    一:为什么需要防抖与节流  防抖和节流都是为了解决短时间内大量触发某函数或者事件而导致的性能问题,比如在 1.用户体验上,触发频率过高导致的响应速度跟不上触发频率,出现延迟...
    99+
    2024-04-02
  • C++重载运算符你真的了解吗
    目录1.重载运算符的必要性2.重载运算符的形式与规则3.重载运算符的运算4.转义运算符总结运算符实际上是一个函数,所以运算符的重载实际上是函数的重载,。编译程序对运算符的重载的选择,...
    99+
    2024-04-02
  • PHP数组的内部实现你了解吗
    目录前言探究zvalzend_array结构介绍结构体数组插入操作hash函数总结前言 这几天在翻github的时候, 碰巧看到了php的源码, 就 down 下来随便翻了翻&nbs...
    99+
    2024-04-02
  • C++的友元和内部类你了解吗
    目录友元函数案例友元类内部类总结友元分为:友元函数 和 友元类 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。...
    99+
    2024-04-02
  • Java和JavaScript的异同,你真的了解吗?
    Java和JavaScript是两种非常常见的编程语言,它们在很多方面有着相似的特性,但它们也有着很多不同之处。在本文中,我们将探讨Java和JavaScript的异同,并且演示一些代码示例来帮助你更好地理解它们。 Java和JavaS...
    99+
    2023-10-24
    javascript http 重定向
  • 你知道吗?Java PATH中的JavaScript文件如何运行!
    Java PATH(Java Permanent Application Temporary Heap)是一个Java虚拟机(JVM)的环境变量,它指向JVM的安装位置。这个环境变量也可以包括其他的一些路径,例如Java类库、Java工具...
    99+
    2023-08-23
    path javascript 文件
  • 你真的了解 PHP 面试和 JavaScript npm 吗?
    PHP和JavaScript是两种广泛应用于前端和后端的编程语言。由于其强大的功能和灵活性,它们在现代Web开发中已成为不可或缺的部分。在这篇文章中,我们将深入探讨PHP面试和JavaScript npm,以帮助您更好地了解它们的特点和用法...
    99+
    2023-09-17
    面试 javascript npm
  • Javascript的原型和原型链你了解吗
    目录一、为什么要使用原型?怎样去理解原型的出现1、对象字面量创建对象的缺点2、工厂函数3、构造函数二、使用原型三、原型概念辨析四、原型链练习总结一、为什么要使用原型?怎样去理解原型的...
    99+
    2024-04-02
  • NumPy实时运算的Go解决方案,你了解吗?
    NumPy是Python中进行科学计算的重要库,但随着数据量的不断增大,NumPy的计算速度也成为了瓶颈。此时,我们可以借助Go语言的高效并发特性,实现NumPy的实时运算。本文将介绍如何利用Go语言实现NumPy的实时运算,并给出相应的代...
    99+
    2023-06-22
    numy numpy 实时
  • Spring MVC 中的 JavaScript 开发技巧,你了解吗?
    在 Web 开发中,JavaScript 是不可或缺的一部分。在 Spring MVC 中,JavaScript 也扮演着非常重要的角色。在本文中,我们将介绍一些 Spring MVC 中的 JavaScript 开发技巧,帮助您更好地开...
    99+
    2023-07-02
    spring 文件 javascript
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作