JavaScript 是同步还是异步,是单线程还是多线程? JavaScript代码是如何执行的?

javascript 是一种同步、单线程语言,一次只能执行一个命令。仅当当前行执行完毕后,才会移至下一行。但是,javascript 可以使用事件循环、promises、async/await 和回调队列执行异步操作(javascript 默认情况下是同步的)。

javascript 代码是如何执行的?

javascript 中的一切都发生在执行上下文中(将其视为一个大盒子或容器)。整个 javascript 代码都在此执行上下文中执行。它有两个组件:内存组件(变量环境)和代码组件(执行线程)。

内存组件: 这是所有变量和函数以键值对形式存储的地方。代码组件:这是执行代码的地方(一次一行)。”

首先,创建一个全局执行上下文。在此范围内,每个函数都会创建自己的执行上下文。

在执行任何行代码之前,都会为所有变量和函数分配内存。

内存分配后代码是如何执行的?
javascript 引擎再次(逐行)运行整个程序并执行代码。

我们看下面的例子:

function add(a,b){   var ans = a+b;   console.log(ans);}var addition = add(6,5);

登录后复制

在这个例子中,首先创建了一个全局执行上下文,它由两个组件组成:内存组件(mc)和代码组件(cc)。

立即学习“Java免费学习笔记(深入)”;

JavaScript 是同步还是异步,是单线程还是多线程? JavaScript代码是如何执行的?

对于函数来说,整个函数代码都存储在内存中。对于变量,最初存储一个特殊的值,未定义。

JavaScript 是同步还是异步,是单线程还是多线程? JavaScript代码是如何执行的?

调用函数时,会创建另一个执行上下文。在内存组件中,存储参数值(a = 6,b = 5),而像 ans 这样的变量最初保留未定义的值。在代码组件中,内存组件中的值用于执行操作 (a + b = 6 + 5 = 11)。然后将结果打印到控制台。

我希望这个解释能够澄清这个概念。如果有任何问题或者更正,欢迎在评论区提问。

感谢 akshay saini(参考:[(https://youtu.be/ilwtnmzwtj4?si=wwmxdhm-v532vy7f)])

以上就是JavaScript 是同步还是异步,是单线程还是多线程? JavaScript代码是如何执行的?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2668143.html

(0)
上一篇 2025年3月7日 12:27:50
下一篇 2025年3月3日 14:09:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何为 TypeScript 项目自定义 tsconfig.json 文件

    tsconfig.json 文件是一个功能强大的工具,允许您自定义 TypeScript 编译器的行为以满足项目的特定需求。通过调整此配置文件中的编译器选项,您可以根据项目的要求定制 TypeScript,从而更好地控制类型检查、模块解析和…

    2025年3月7日
    200
  • [Leetcode] 对象是否为空

    问题链接:https://leetcode.com/problems/is-object-empty/description/ [问题陈述] 给定一个对象或数组,如果为空则返回。 空对象不包含键值对。空数组不包含任何元素。 您可以假设对象或…

    2025年3月7日
    200
  • extjs API 查询参数示例

    api 查询 参数是附加到 api 请求的 url 的键值对,用于向服务器发送附加信息。它们允许客户端(例如网络浏览器或应用程序)在向服务器发出请求时指定某些条件或传递数据。 查询参数添加到 url 末尾的问号 (?) 后面。每个参数都是一…

    2025年3月7日
    200
  • typescript的数据类型

    TypeScript 提供了强类型安全性,强制执行变量和表达式的明确数据类型。它支持基本类型(数字、字符串、布尔值、空值和未定义值)和引用类型(数组、对象和函数),以及枚举类型、联合类型、类型别名和类型断言,从而提高了代码的可维护性、可读性…

    2025年3月7日
    200
  • typescript定义数据类型

    TypeScript 中的数据类型用于指定变量存储的值的类型,从而确保代码类型安全和防止运行时错误。这些数据类型包括:基本数据类型:number、string、boolean、null 和 undefined复合数据类型:数组、对象和 en…

    2025年3月7日
    200
  • typescript的数据类型有哪些

    TypeScript 是强类型语言,数据类型包括:原始数据类型:number、string、boolean、null、undefined结构化数据类型:array、object、tuple、enum函数数据类型:function、arrow…

    2025年3月7日
    200
  • Javascript重要概念||重要的 JavaScript 概念

    逐步使用代码示例来帮助您更好地理解每个概念。 1. js简介 javascript 是一种多功能语言,可以在浏览器或服务器上运行(使用 node.js)。它用于使网页具有交互性。 hello, javascript! click me fu…

    2025年3月7日
    200
  • js如何定义对象

    JavaScript 中,对象是一种键值对数据结构,使用花括号定义,键值对以冒号分隔,键值对之间以逗号分隔。可以通过点符号或方括号访问和修改属性,还可以添加或删除属性。对象可以嵌套其他对象,通过点符号访问嵌套属性。 如何在 JavaScri…

    2025年3月7日
    200
  • js如何使用集合

    JavaScript 中集合是一种存储唯一值的数据结构。使用 Set 对象创建集合,可通过构造函数或 Set.from() 方法。通过 add() 和 delete() 方法添加或删除元素,并使用 has() 检查元素是否存在。遍历集合可通…

    2025年3月7日
    200
  • js如何获取map的值

    JavaScript Map 中的值可以通过两种主要方式获取:1. 使用 get() 方法根据键检索特定值;2. 使用 forEach() 方法遍历所有键值对并在回调函数中获取值。选择哪种方法取决于需要获取的值的数量以及是否需要遍历 Map…

    2025年3月7日
    200

发表回复

登录后才能评论