随笔分类 - JavaScript
摘要:说明 这篇笔记不会详细讲关于Promise的使用,可以去看我的另一篇博客你不知道的JavaScript——异步编程(中)Promise 编写的Promise遵循Promise/A+规范,可以通过promises-aplus-test的全部872个单元测试。 本篇笔记是一边编写代码一边记录的,所以代码
阅读全文
摘要:前面两篇笔记中介绍了JS引擎的运行模式,它是以任务为中心,一个任务就是一个函数,一个任务一旦执行,没有人能够打破这个执行,这也保证了JS中不会发生类似Java等抢占式多线程编程语言的竞态问题。 生成器打破了这个完整性,它允许一个函数在执行过程中主动暂停,保存状态,将执行控制权让给其它函数。生成器在很
阅读全文
摘要:宏任务和微任务 PS:这里可以选择性忽略,直接从第二块内容看起。 上一篇笔记介绍了JS中的异步任务执行模型,但那个模型对现在的JS来说,有些落后了,如今的JS有了Promise等更多更先进的异步编程工具,这个模型当然也要随之更新。 新增的内容就是微任务队列(MicroTasks Queue V8术语
阅读全文
摘要:异步编程 夏天太热了,我买了几颗柠檬,准备做柠檬茶。 我先烧了开水,把茶泡上了,但是突然想起好像之前不知道从哪里听说的,如果把柠檬或者蜂蜜直接丢进热水里会发苦。我不知道是不是真的,而且就算不是真的,我也不能把一壶滚烫的茶水直接灌进塑料瓶里。 所以我只能先把它放在那,好在我的水壶是智能的,我设置了等它
阅读全文
摘要:混入 JavaScript和传统的面向对象编程语言有很大差异,实际上它没有类,只有对象,那么自然也就不存在继承、多态这些东西。 混入是在JS中实现传统面向对象模式的一个办法。 function mixin(parentObj,childObj){ for(var key in parentObj){
阅读全文
摘要:之前一直不知道this到底代表啥,只知道它和一般面向对象编程语言中的this一定不同。 JavaScript中的this可以在函数中使用,是编译器通过一些条件在函数被调用时绑定进对应作用域的的一个变量,可以明确知道的是,这个变量一定是一个对象,所以你可以用this.xxx的方式访问一个属性。 可以看
阅读全文
摘要:原书《你不知道的JavaScript》 解释型 or 编译型 JavaScript早已不是以前的JavaScript了,早期的JS确实仅仅是生成AST(抽象语法树)然后直接解释执行。但随着JS的应用越来越广,不仅仅局限于浏览器端,所以早先的解释执行已经不能满足大家对它的性能需求了,chrome v8
阅读全文
