首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「译」JavaScript 究竟是如何工作的?(第二部分

原文地址:How Does JavaScript Really Work? (Part 2) 原文作者:Priyesh Patel 译文地址:[译] JavaScript 究竟是如何工作的?...(第二部分) 译者:Chor 在这篇文章的第一部分,我简要概述了编程语言的一般工作机制,并深入探讨了 V8 引擎的管道。...第一部分介绍了 V8 为改进 JavaScript 执行时间所做的速度提升和优化,第二部分则将着重介绍内存管理方面的知识。...内存泄漏指的是,程序之前需要用到部分内存,而这部分内存在用完之后并没有返回到内存池。...下面的例子中,基本事件永远不会执行,lonley 函数在没有返回值的情况下不断地调用自身,最终会导致栈溢出。

48310

「译」JavaScript 究竟是如何工作的?(第一部分

原文地址:How Does JavaScript Really Work? (Part 1) 原文作者:Priyesh Patel 译文地址:[译] JavaScript 究竟是如何工作的?...(第一部分) 译者:Chor 如果你是一个 JS 开发者或者是正在学习这门语言的学生,很大概率上你会遇到双字母词”V8”。...在这篇文章中,我将会为你简述不同的 JS 引擎并深入探究 V8 引擎的工作机制。文章的第二部分涵盖了内存管理的概念,不久后将发布。 这篇文章是由 Bit (GitHub) 带来的。...3.V8 引擎 3.1 部分历史 谷歌针对浏览器开发了谷歌地图,而这对浏览器的处理能力提出了很高的要求。那时的 JavaScript 实现尚不足以快速地运行地图。...本文的第二部分将会在不久后发布,其中将谈到内存堆,栈,事件循环以及更多与 JavaScript 代码执行相关的概念。敬请关注!

48920
您找到你想要的搜索结果了吗?
是的
没有找到

50道JavaScript详解面试题,你需要了解一下

答案是第二种情况(打印出queueMicroTask更好),因为来自queueMicroTask的任务在调用栈为空之后且在调用事件循环之前被调用,对于setTimeout而言,任务是eventQeue的一部分...在JavaScript中,我们处理的大多数事物都是对象,类似地,数组只是JavaScript中的特殊对象,它们具有其他对象所没有的属性。 7、以下函数的返回类型是什么?...答案,是B,因为异步函数在JavaScript返回Promises 。 8、等待关键字会阻止应用程序中的所有JavaScript代码执行,直到返回等待的Promises?...以下语法是有效的,因为我们正在将异步函数的返回值传递给callback。 11、typeof和instanceof之间没有什么区别? typeof返回类型, instanceof返回布尔值。...它不会返回任何内容,并且如果你需要从循环中返回值,则永远不要使用forEach循环。 30、RegExp没有任何属性。那是对的吗? 不,RegExp具有许多属性,例如.flags和.global。

3.5K40

Node.js 对 Java:一场史诗级的争夺开发者注意力的对决

但事实证明,这一预测只有一部分是正确的,Java 统治了安卓手机、企业计算和一些嵌入式设备,如蓝光光碟。 虽然 Java 取得了一定的成功,但它从来没有统治过桌面或浏览器。...不过,JavaScript 也在迅速迎头赶上。当 web 的大部分依赖于 JavaScript 执行引擎时,开发者的时间大部分花在了打磨边边角角上面。...如今,许多 Web 服务和数据库都以 JSON 的形式返回数据,JSON 是 JavaScript 天然的一部分。...JavaScript 适合简单的任务,但是其内部有很多令人混淆的地方。举一个简单的例子,JavaScript 针对没有答案的函数会生成三种不同的答案,分别是:undefined、NaN 和 null。...JavaScript 更怪异的方面是虽然它在简单的表格工作很少出问题,但对于复杂的数学和定型工作而言,JavaScript 并不是一个好选择。

98650

三个比它们等效 ES5 速度慢的 ES 6 函数,另附国外开发者如何“喷”人

如果您正在开发一个高性能的超级关键服务器应用程序,那么您要么首先不使用 JavaScript,要么您将成为一名经验丰富的开发人员,他知道自己在做什么以及谁不仅仅取得他的第一个结果。...选项 2 正在投入一些资金来扩展您的硬件。我说几乎总是选择 2。 在短期内,让您的开发人员进行优化工作可能比扩展服务器所需的成本更高。...让我们说,为了论证,20% 的事件(每秒 140k)正在进行一些繁重的工作并循环超过一万件事情。现在,假设您将这些循环从 forEach 优化到 for 循环。您的“基准”可为此更改节省 67 微秒。...这些秒不是线性的,因为我假设您没有在单个 JavaScript 线程上使用单个服务器消耗 700k 事件。在那种规模上,你并行运行多个线程。...个人看法 首先发布个人看法,我觉得这篇文章还是很有价值的,很有趣的,它带给我们的价值不是说这些比较的数字比较有价值,而是另外的两点: 让我们要注意,google 出来的第一个答案不一定是好的答案

74720

当你在浏览器中输入“google.com”并回车,会发生什么?

纯粹出于兴趣, 我要把我的答案罗列在此。...当这些请求正在进行时,JavaScript会被解析,可能没有阻塞,因为他们在标签上使用了defer属性 - 或者async。...但浏览器可能已经渲染了搜索框并且正在顶部的工具栏上工作,这将需要一些额外的网络请求 - 我可能已经有一个cookie或可能是带有OAuth令牌的本地存储 - 或我可能是使用Chrome并且它已经知道我是谁...▷ IE11和Chrome之间没有太大的差别。但这意味着他们是用户代理嗅探服务器端而不是客户端。在我的答案中可能提到了这一点。 ▶ 出乎意料的是,Chrome的响应体大了22kB。...▷ 自我提示:完全响应是对JavaScript、CSS和HTML的乱七八糟的混合体。相比于其独立性,他们没有遵守任何控制其位置的规则。 问题本身是什么呢“ 你知道吗?

1.6K20

面试100题及答案_三特点带你认识基层岗位常见面试题

答案:canvas;注意:canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成。...第12期:JavaScript由3部分组成,分别是:ECMAScript,BOM和? 答案:DOM;文档对象模型(DOM)描述了处理网页内容的方法和接口。...答案:输出object;在javascript中,null值表示一个空对象指针,而这正是使用typeof操作符检测null值时会返回“object”的原因。...第66期:在JavaScript数组中,实现向数组末尾添加一个元素的方法是: ? 答案:push( );此方法可向数组的末尾添加一个或多个元素,并返回新的长度。...第94期:在javascript全局函数中,解析一个字符串并返回一个整数的方法是: ? 答案:parseInt(); parseInt() 函数可解析一个字符串,并返回一个整数。

99610

Rich Harris 谈论 SvelteKit 和 Svelte 的下一步

“目前我们正在开发 Svelte 4,它将现代化代码基。” 该团队正在将底层代码从 TypeScript 切换到 JavaScript。...它被编译成 JavaScript,以便可以在任何地方运行。他说,这样做的优点是,在构建应用程序时,Svelte知道应用程序的哪些部分可能会发生变化,哪些部分不会发生变化。...SvelteKit 方法的好处 这种方法的好处是能够更好地感知性能,因为页面的一部分会在 JavaScript 加载时运行,甚至在 JavaScript 无法加载时也会运行,Harris 说这种情况比开发者想象的要多...例如,当他在地铁上时就会遇到这个问题——连接断开了,JavaScript没有加载。具有服务器端渲染可以使用户仍然能够查看内容。 “这对于搜索引擎优化、归档目的和可访问性等方面都更好,”他说。...长期以来,答案都是否定的。” 随着 Vercel 的支持,情况已经发生了变化,一些客户现在正在使用 Svelte 。

11310

2023金九银十必看前端面试题!2w字精品!

请解释CSS的盒模型是什么,并描述其组成部分答案:CSS的盒模型是用于布局和定位元素的概念。它由内容区域、内边距、边框和外边距组成,这些部分依次包裹在元素周围。 2....它是如何工作的? 答案:React的协调过程是指React在进行组件更新时,通过比较新旧虚拟DOM树的差异,仅对需要更新的部分进行实际的DOM操作。...它使用客户端-服务器模型,客户端发送HTTP请求到服务器,服务器返回HTTP响应。HTTP的工作流程如下: 客户端发送HTTP请求到指定的URL。 服务器接收请求并处理,然后返回HTTP响应。...答案:浏览器的工作原理包括以下几个关键步骤: 解析:浏览器将接收到的HTML、CSS和JavaScript代码解析成DOM树、CSSOM树和JavaScript引擎可执行的代码。...浏览器缓存通过在首次请求时将资源保存到本地,并在后续请求时检查资源是否已经存在并且没有过期来工作。如果资源已经存在且未过期,浏览器会直接从缓存中加载资源,而不是从服务器重新下载。 10.

33942

JavaScript 中的稀疏数组世界

将稀疏数组想象成一个分成两个部分的停车场:免费停车和付费停车。免费停车位就像我们数组中的空槽位一样。我们的停车管理员 - map() 函数 - 忽略它们,径直走过它们。...类似地,JavaScript 的 map() 方法将始终返回与原始数组相同长度的新数组。它不会消除空白位置;它保持它们不变,确保数组的长度保持一致。...因此,它将为存在值的所有索引返回 true,并为空槽返回 false。总结✔️ 不是所有的数组都是密集的。有些有空隙,我们称之为稀疏数组。✔️ 为了找到长度,我们必须计算空隙。...我现在还没有答案,并承诺在有答案时更新文章。但是,即使答案是明确的“不”,这也无关紧要。这并不会减少 JavaScript 数组这些古怪方面的探索的吸引力。古怪之物长存!...我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

15530

求职 | 听说集齐了这些Js题,笔试都不怕了呢!

1写在前面 一套JavaScript题目 前端工程师是互联网时代软件产品研发中不可缺少的一种专业研发角色。以前看过一套JavaScript题目,借花献佛拿出来分享一下,附带了自己的理解和答案。...:”number” 为了便于理解我们继续分解; 第一部分: var baz = function(){ return 1; }; 第二部分: (function f(f){    return typeof...我们必须要知道this运算符是怎么工作的。 JS语言精粹总结的很精炼: 1 纯粹的函数调用 2 作为对象方法的调用 3 作为构造函数调用 4 apply调用 我们看看题目是属于那种环境?...3 将第一步创建的空对象做为类的参数调用类的构造函数 默认如果没有覆盖这个空对象的话,返回this。...2.12   题目十二  var x = [typeof x, typeof y][1];    typeof typeof x; 答案:“undefined” 这题目比较简单,注意下返回类型即可。

21310

在Atom中设置Python开发环境

如果你只用Python工作,或者只用JavaScript或其他工具,那么图标可能对您来说不重要。但很可能您的文件树包含多种语言和格式的多个文件。在这种情况下,使用此包可以帮助您轻松找到树中的文件。...关于该包的工作原理被记录在文档中。...它使用pycodestyle实用程序来确定代码的哪些部分需要格式化。autopep8能够修复pycodestyle可以报告的大部分格式问题。安装此软件包后,可能需要单击设置并选择“保存时格式化”选项。...def test_prime(n): // 函数体 函数调用的另一个主要区别在于:在JavaScript中,函数内部的工作始终在花括号之间,遵循参数;而在Python中,函数以冒号开头,而不是花括号...如果匹配,我们返回数字,否则我们没有返回。 然后,我们向find_solution函数提供参数2520,函数只检查每个第2520个数字,而不是检查每个数字或每隔一个数字,这允许代码运行得更快。

4.8K80

只有 10% 开发人员才可以答对的 JS 面试题,测测你能答对多少

这个实验最有趣的地方在于,除了计算正确答案之外,我们还对 Javascript 最困难的方面进行了调查,结果大相径庭。...在调查中,大部分受访者回答他们最困难的话题是 Promises,而据统计,Promises 仅排在第 4 位。 我们应该在每项任务旁边留下关于正确答案百分比的注释。...如果超出此范围,该函数将始终返回 NaN。如果 是0 或未提供,JavaScript 假定如下: 1)....根据这个定义,我们得到以下结果: parseInt('9', 0) -> radix 0 等同于没有基数的调用。...在每个测验下,你都会找到关于它是如何工作的详细说明。这只是对本示例中的代码如何工作的简要描述,因为事实证明它是整个测验系列中的受访者最困难的。 所以..让我们了解这个例子中发生了什么。

1K20

巧用“搜索”解决自学编程遇到的难题

不管怎样,你应该总是在使用 parseInt时指定进制:parseInt(’08’, 10);(以 10为基,或者十进制)会在所有浏览器中返回 8。 在 Google时代,每个人都是搜索专家。...不到几秒钟,你就可以找到各种信息,比如你正在看的电影女演员的八卦信息。因为互联网以前和现在都是由程序员搭建的,互联网上关于编程的信息格外的多。...例如,在搜索 parseInt问题的结果时,一个好的查询可能是“ javascript parseInt returns 0”。当我运行这个搜索时,第一条记录就返回了我要找的答案。...我做了些 AJAX调研,发现你必须写 JavaScript才能使用 AJAX。所以我开始学习 JavaScript,直到我学了足够的知识,可以使用 AJAX,我就可以搭建自动补全系统了。...文档和教程很棒,但没有什么可以跟真实的人描述一个真实世界的问题及其解法相提并论。不过在你相信这个信息之前,还是要调研下作者。

54820

想做web开发,就学JavaScript

鉴于当前的状况和趋势,答案相对容易给出来:学习JavaScript。四周看看,曾经低端的浏览器脚本语言现在变得随处可见,从服务器端到客户端,每天好像有更多的选择。...这与刚开始的情形比起来,相差甚远,那时候JavaScript从来都没有自豪地写到简历里,因为真正的程序员是不屑于掌握它的。而现在,JavaScript是大部分招聘人员考核的重点。...当你正在寻找web开发的工作时,我认为JavaScript是可以起步的伟大语言,下面是重要原因: 进入门槛低:JavaScript与其它语言相比,相对容易学习,你能够在线上找到很多现成的脚本和资源。...跨平台:所有浏览器,还有基于Node.js的服务器端,都支持JavaScript,在大部分移动平台也正常运行。一套JavaScript技能可用来开发面向大部分平台的应用程序。...如果你不同意,那么你认为想找web开发工作的开发者应该学习的第一门语言是哪种?在评论里告诉我们。

31520

分享 63 道最常见的前端面试及其答案

当然,这些面试题的答案都不是标准答案,只是对答案做了一个简介明了的说明,希望可以快速帮助你梳理重点核心内容。 这些答案可以作为参考,但是不能作为唯一标准答案,你也可以在面试时,自行补充。...02、解释 JavaScript 中“this”的工作原理 在 JavaScript 中,“this”指的是函数的当前执行上下文。...18、描述块格式化上下文 (BFC) 及其工作原理 块格式上下文 (BFC) 是网页视觉 CSS 渲染的一部分。它是块级盒子布局发生的区域,并且浮动体彼此交互。...本机对象(如数组或字符串)是 ECMAScript 规范的一部分,它们的行为由语言本身定义。 22、解释可变对象和不可变对象之间的区别。JavaScript 中不可变对象的示例是什么?...事件循环负责利用单个线程执行 JavaScript 中的操作。它使用调用堆栈来跟踪当前正在执行的操作,并使用任务队列来管理异步任务。

16130

分享63个最常见的前端面试题及其答案

当然,这些面试题的答案都不是标准答案,只是对答案做了一个简介明了的说明,希望可以快速帮助你梳理重点核心内容。 这些答案可以作为参考,但是不能作为唯一标准答案,你也可以在面试时,自行补充。...02、解释 JavaScript 中“this”的工作原理 在 JavaScript 中,“this”指的是函数的当前执行上下文。...18、描述块格式化上下文 (BFC) 及其工作原理 块格式上下文 (BFC) 是网页视觉 CSS 渲染的一部分。它是块级盒子布局发生的区域,并且浮动体彼此交互。...本机对象(如数组或字符串)是 ECMAScript 规范的一部分,它们的行为由语言本身定义。 22、解释可变对象和不可变对象之间的区别。JavaScript 中不可变对象的示例是什么?...事件循环负责利用单个线程执行 JavaScript 中的操作。它使用调用堆栈来跟踪当前正在执行的操作,并使用任务队列来管理异步任务。

3.6K20
领券