大顶堆

题目 群里有个人发的,题目很简单 随手写的 //debug print function DB(obj) { // console.log(obj); } //debug print maxHeap function DBPMH(maxHeap) { if(!maxHeap || MaxHeap != maxHeap.constructor) { DB("DBPMH the »

express.js 源码二探 —— request篇

接上篇初探 上篇写的很乱,只是个人临时决定写的。主要试图从app.use和app.[method]之间区别着手,来解释express的中间件和路由的实现逻辑。 本篇 本篇很有可能依然保持上篇的发散性思维,所以各位读者可能要小心阅读,避免吐槽而亡。 环境 保持与上篇一致,源码版本是express.js 4.14.1 request源码 打开request.js,从上往下看代码 IncomingMessage var req »

js 变量作用域

问题 今天有人发了一个网站,问题来源。 一 if (!("a" in window)) { var a = 1; } console.log(a); 按照这种思路就可解,变量声明会被提前,也就是说上面的代码等价于下面代码 var a; if (!("a" in window)) { a = 1; } console. »

nodejs promise介绍

promise 概念 ES6 原生支持Promise Promise是一个构造函数,包含all,reject,resolve等方法。一个Promise用来传递异步操作的消息,它代表了未来才会知道结果的事件。 本质上是一种异步编程的抽象,是返回值或者抛出exception的代理对象。它有一个then方法,任何人都可以访问then来消费这个返回值或exception的。 三种状态 promise只有三种状态,并且状态转移只能是pending -> fulfiled 或者pending -> rejected pending: 待定状态,Pormise对象刚被初始化的状态 fulfilled: »