Javascript学习
krfwill
应该尝试着在混沌中寻找秩序,身在规则中不应该只是为了解决问题。
展开
-
精读Javascript系列(10) Promise——Promise/A+规范解读Promise
Promise简介原创 2020-06-05 21:52:20 · 454 阅读 · 0 评论 -
精读Javascript系列(9coll) Promise — 回调地狱、Promise构造器
前言最后原创 2020-06-02 10:27:13 · 332 阅读 · 0 评论 -
精读Javascript系列(八)事件循环细则 II: NodeJS事件循环相关
前言大部分涉及异步的文章,都非常自然的谈到了NodeJS, 虽不知这样做有何意义,总而言之努力尝试着接触了一下NodeJS…… 嘛,然后我就认识到了人不应该做不适合自己的事情。嘛,下面的内容并非是教程,不对底层较深入的看客可以跳过的。Javascript 与 NodeJS 异同最近努力接触了一下NodeJS,就一下子就碰到了既深入又艰难的部分,根据NodeJS架构,可以得到NodeJS是多线程的,但是运行JS是单线程的。参考图来源:Node架构图由图可知,就是nodeJS的事件循环其实是基于l原创 2020-05-31 16:18:06 · 348 阅读 · 0 评论 -
精读Javascript系列(七)事件循环细则 I:微任务、宏任务
前言之前笔记扩展大量的异步基础内容,个人觉得应该是所有开发人员应该理解的,Javascript开发人员也不应该有例外。现在开始,算是正式进入Javascript的环节。例如事件循环的处理机制,微任务、宏任务…… 由于篇幅所限,暂时就录入这些吧。开始:事件循环首先补充一下上次事件循环的更多细节:事件循环开启更新当前消息序列从当前消息序列中取出任务消息序列是先入先出结构,也就是说它是按照顺序取出的。处理任务自上而下运行JS代码如果发出异步请求,然后将消息保存到这个新消息序列(若无则新建原创 2020-05-28 20:01:54 · 388 阅读 · 0 评论 -
精读Javascript系列(六)并发编程、 Javascript异步框架
前言从本质上来讲,Javascript是非阻塞型单线程编程语言,因此JS自身是没有异步功能的。常说的异步,是浏览器API(WebWorker.etc)与JS强强联合实现的。与初次接触JS时不同,想要真正掌握JS的异步,就必须明白什么是JS采用的是什么并发编程框架。 实际上,JS异步已经最大程度的简化并发编程的繁杂性,基本上只要牢记异步常见套路,就能轻轻松松实现异步。但是,套路并不适合分析,毕竟JS在实现上可不是按套路来的。因此在JS进阶这个层次,就必须完全弥补这个缺口。想要揭开JS实现异步的神秘面纱,就原创 2020-05-24 09:31:00 · 798 阅读 · 0 评论 -
精读Javascript系列(五) 函数闭包
前言本文专门介绍闭包,但事实上,闭包的难点并不在概念,而是在词法环境的嵌套上。只要将词法环境的嵌套关系整理清楚,闭包就瞬间被克服了。总之,先不废话了,正文开始。闭包如果一个函数在定义的词法环境外运行并记住了定义时的词法环境,这样的现象就可以称作函数闭包(Function Closure)举个简单例子: function f(x=0){ var count=x; function getCount(){ return原创 2020-05-22 20:39:13 · 354 阅读 · 0 评论 -
精读Javascript系列(四)过渡篇:左值与This绑定
前言:在前三篇中,可以将学习路线图归纳为以下:变量与标识符 —> 词法环境与作用域 —> 词法环境与环境记录 —> 词法环境与执行上下文 执行上下文与执行栈 —> 执行栈与任务序列 —> 事件循环入门 。现在基本上可以看出,Javascript进阶的路程脉络了。所有的内容都是围绕核心进行描述总结的,并且尽可能避免知识断层或是概念套路化这种情形。否则真的,即便是尝试进阶Javascript多少次,可能也要重新来一遍喜滋滋。 我的资料大部分来自github大佬博客、ES8标原创 2020-05-21 00:52:48 · 416 阅读 · 0 评论 -
精读Javascript系列(三) 执行上下文、 执行栈、初识事件循环
前言这时可以接触真正实用的东西了,毕竟变量也不能代表整个Javascript语言,虽然有些不可思议,但变量的确是Javascript必经之路之一,关于变量的奇特行为数不胜数(真的是这样),不过这些我想高阶Javascript都努力回避这些,新手也不懂,所以我就跳过了。下面的这些概念,无论是执行上下文、 还是执行栈,它在规范中的概念都很抽象,很多内容的理解实际靠的都是想象力,若有错误之处,还请指正。执行上下文简而言之,执行上下文(Execution Context)是正在运行的可执行代码所处环境的抽象原创 2020-05-19 19:04:26 · 4937 阅读 · 6 评论 -
精读Javascript系列(二)环境记录与词法环境
前言关于变量,在Javascript核心知识体系中,占比不重,即使有些迷惑行为,也认为Javascript本应就如此,就因为下意识的草率,导致这些小问题成了日后进阶的壁障。这里就先从两个极为经典的问题开始吧。变量提升和暂存死区先来两个示例:其一:变量提升 console.log(typeof number); // undefined var number = 1000; console.log(number); // 1000应用中,var声明的变量能够提前使用虽然只是und原创 2020-05-17 16:49:08 · 1582 阅读 · 4 评论 -
精读Javascript系列(一) 变量 、 初识词法环境
前言其实,我觉得Javascript核心中重要的东西并非是从旧版本扩展来的高大上的语法,例如解构赋值啊、展开语法和剩余参数(嘛……虽然的确是很666),但是用好这些,其实都建立在你对变量的认识上(常有人不知道什么是左值或右值的区别)正因如此,我觉得了解一个Javascript还是从最基本做起,就是了解一下何为变量吧。本文其实也并非完全基础,还是建立在对Javascript有一定了解之上的,至少对对象要有一定的认知。开始吧。变量与数据什么是变量?越简单的问题答案往往越是让人感到意外,多数人的答案都与原创 2020-05-16 13:17:57 · 904 阅读 · 0 评论 -
精读Javascript系列序---导读
前言趁现在还能学习的时候学习点真正有用的东西吧。这是我从某人那里听到了这样的一句话,我决定翻一翻过去学习Javascript的导图笔记,之后发现对Javascript有了亿点点更新的认识。我很想这种心情记录下来,这就是我决定在有时间闲的蛋疼的时候写写博客的原因。Javascript学习历程总的来说,Javascript的学习是无止境的;不有一日对 ECMAScript规范掌握的滚瓜烂熟 ,始终不会到达尽头;基本上我们所看到的javascript书籍,都能反映我们javascript的水平。请看(从上原创 2020-05-15 14:49:03 · 312 阅读 · 0 评论