首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
v8原理
订阅
CT_H
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
浏览器事件循环机制(event loop)
JS是单线程的,或者说只有一个主线程,也就是它一次只能执行一段代码。JS中其实是没有线程概念的,所谓的单线程也只是相对于多线程而言。JS的设计初衷就没有考虑这些,针对JS这种不具备并行任务处理的特性,我们称之为“单线程”。 虽然JS运行在浏览器中是单线程的,但是浏览器是事件驱动…
10 个 GitHub 上超火的前端面试项目,打造自己的加薪宝库!
一般人没事的时候刷刷朋友圈、微博、电视剧、知乎,而有些人是没事的时候刷刷 GitHub ,看看最近有哪些流行的项目。 久而久之,这差距就越来越大,因此总会有开源信息的不对称,有哪些优秀的前端开源项目值得学习的也不知道。 初步前端与高级前端之间,最大的差距可能就是信息差造成的。 …
前端与编译原理——用 JS 写一个 JS 解释器
说起编译原理,印象往往只停留在本科时那些枯燥的课程和晦涩的概念。作为前端开发者,编译原理似乎离我们很远,对它的理解很可能仅仅局限于“抽象语法树(AST)”。但这仅仅是个开头而已。编译原理的使用,甚至能让我们利用JS直接写一个能运行JS代码的解释器。 接触过小程序开发的同学应该知…
编译原理:从0写一个js解释器
前段时间写了一个js解释器,在没有依赖任何第三方库的情况下。 到目前已经已经把除了对象以外的JS大部分基础功能写出来了,在此分享和回顾一下主要实现和技术细节。 对于上述的输入,将字符串转换成token数组很简单,我们只要去逐个读取输入串的值并跳过其中的空格就可以导出这个值。 P…
从 JS 编译原理到作用域(链)及闭包
对于大部分编程语言, 编译大致有三个步骤. 此过程将源代码分解成 词法单元 (token), 如代码 const firstName = 'Yancey' 会被分解成 const, firstName, =, 'Yancey', 空格是否会被当成词法单元, 取决于空格对这门语言…
小前端学编译原理
以前听尤大说懂编译原理就可以为所欲为,于是简单地研究了一点(nai)点(nai)的编译原理,感觉自己可以为所欲为了。。。 编译器: 一个编译器就是一个程序,它可以阅读某一种语言编写的程序,并把该程序翻译成为一个等价的、用另一种语言(目标语言)编写的程序。 解释器,另一种常见的语…
JS引擎(一):JS中的JIT与基本执行逻辑
一般来说,每个浏览器、运行时都可能实现自己的JIT编译器,但通常其理论是一样的,遵循相同的结构。 由于JS是解释型语言,JS引擎需要将代码逐行翻译为可执行的代码,可执行的代码有多种形式,其中较常见的有基于AST直接执行及ByteCode的执行方式。 在解释器执行代码时,监视器会…
Web开发应了解的5种设计模式
设计模式是对软件设计开发过程中反复出现的某类问题的通用解决方案。设计模式更多的是指导思想和方法论,而不是现成的代码,当然每种设计模式都有每种语言中的具体实现方式。学习设计模式更多的是理解各种模式的内在思想和解决的问题,毕竟这是前人无数经验总结成的最佳实践,而代码实现则是对加深理…
V8 执行JavaScript 入门
首先需要明确,我们的代码是不能直接被 CPU 执行的,因为 CPU 只能识别二进制的指令,但是二进制的指令都是类似10111011111100110 这样的,很明显,如果我们去写一个程序,都是直接用二进制,难度可想而知有多大。 就算给你一张二进制指令映射表,告诉你每一串二进制对…