js手写发布订阅(pubsub)

js手写发布订阅(pubsub)

面了一个央企,一上来就让我手写pubsub,没写出来,今天梳理和学习一下怎么写。

发布订阅模式:包含发布者(publisher),订阅者(subscriber),消息中心(message center)。

发布者发布消息给消息中心,并且可以携带参数。

订阅者向消息中心订阅消息,并且可以获取发布者发送的参数。

消息中心在获取到发布者的消息后通知订阅者并且转发参数。

阅读更多
js箭头函数(lambda表达式)和普通函数的区别
JavaScript异步编程

JavaScript异步编程

JavaScript异步编程的进化历程:callback -> Promise -> Generator -> async/await

异步的意思是该代码与其他代码的关系是异步执行的,而在该代码自己内部是同步执行的。

阅读更多
列出页面上出现次数前n的标签名
《JavaScript语言精粹》读书笔记
实现call, apply和bind

实现call, apply和bind

实现call

思想

实现一个call无非就是下面几点:

  1. 第一个参数传入null时,this指向window。
  2. 第一个参数传入对象时,this指向该对象。
  3. 接受剩余参数传入。
  4. 返回函数执行的结果。
阅读更多
call, apply和bind
undefined和null的区别

undefined和null的区别

js 最初设计的缺陷导致 js 神奇的存在两个空值: undefinednull
其他语言中有且只有 null , NULL 等。

实际开发中,将一个变量赋值为 undefinednull 几乎没有区别,且两者都为 Falsy

那么两者的区别到底是什么呢?

阅读更多
原型与原型链
解析let和const声明的变量不在window下的原因