首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
js高级
订阅
晒太阳的真
更多收藏集
微信扫码分享
微信
新浪微博
QQ
15篇文章 · 0订阅
深入理解JavaScript执行上下文、函数堆栈、提升的概念
这里先不关心执行结果。磨刀不误砍柴功,先了解一下函数执行上下文堆栈的概念。相信弄明白了下面的概念,一切也就水落石出了。 我们都知道,浏览器中的JS解释器被实现为单线程,这也就意味着同一时间只能发生一件事情,其他的行为或事件将会被放在叫做执行栈里面排队。下面的图是单线程栈的抽象视…
【进阶1-1期】理解JavaScript 中的执行上下文和执行栈
本期的主题是调用堆栈,本计划一共28期,每期重点攻克一个面试重难点,如果你还不了解本进阶计划,文末点击查看全部文章。 执行上下文是当前 JavaScript 代码被解析和执行时所在环境的抽象概念。 全局执行上下文:只有一个,浏览器中的全局对象就是 window 对象,this …
AST抽象语法树
抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示。这里特指编程语言的源代码。 树上的每个节点都表示源代码中的一种结构,之所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括号被隐含在树的结构中,并没有…
一道面试题引发的思考:理解 new 运算符
说实话,第一反应我以为值为 'Tom',等到我把代码丢到控制台一输出,才明白我错了。天呐,new运算符给无视掉了吗??? 很显然,输出的结果是 'Tom', 但是有 new 存在呢?接下去,我们来捋一捋。 emmmm,相当晦涩难懂。 我们接着看 MDN 文档的解释,毕竟光光看这…
前端进阶(第一期)-调用堆栈笔记
值类型数据是值的复制,开辟新的存储空间来存储值,复制前后的数据之间无联系。 引用类型数据仅仅是地址的复制,开辟新的存储空间来存储地址指针,复制前后的地址指针指向堆中同一个值。 在JavaScript中,最常用的是通过标记清除的算法来找到哪些对象是不再继续使用的,a=null是一…
V8引擎
V8使用C++开发,并在谷歌浏览器中使用。在运行JavaScript之前,相比其它的JavaScript的引擎转换成字节码(包含执行程序的二进制文件)或解释执行,V8将其编译成原生机器码(IA-32, caching)等方法来提高性能。有了这些功能,JavaScript程序在V…
JavaScript阴沟里翻船之运算符优先级
首先欢迎大家关注我的Github博客,也算是对我的一点鼓励,毕竟写东西没法变现,坚持下去也是靠的是自己的热情和大家的鼓励。各位读者的Star是激励我前进的动力,请不要吝惜。 上面的语句运行时候为什么函数anonymous中的this指向的是window而不是new创建的新对象。…
前端每日一问--谈谈instance的原理
typeof:typeof 运算符返回一个用来表示表达式的数据类型的字符串。通常typeof返回的如下结果:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。null和对象typeof都会返回"objec…
从规范看赋值表达式的解析
显然,关键点在于最后一个语句的执行。这个语句的执行主要涉及了 属性获取表达式 和 赋值表达式,先去规范里看对于这两种语法及其执行的规定。 1. 赋值表达式 a.x = a = a.y = {n: 2}; 是其中的第二种形式 (第三种形式中的AssignmentOperator在…
「译」理解JavaScript的柯里化
许多计算机语言都采用了这种编程风格。在这些语言中,JavaScript、Haskell、Clojure、Erlang 和 Scala 是最流行的几种。 我们接下来要谈到的概念就是这其中的柯里化。 在这篇文章📄中,我们会看到柯里化如何工作以及它是如何被软件开发者运用到实践中的。…