instanceof
boolean
[Symbol.hasInstance]
static method 来判断一个 object 是否是一个 class 的 instanceinterface IConstructor<T> {
new(...args: any[]): T
}
function isObject(o: any) {
return (typeof o === 'object' || typeof o === 'function') && o !== null
}
function instanceOf<T>(obj: any, cls: IConstructor<T>): obj is T {
if (isObject(cls)) {
if (typeof cls[Symbol.hasInstance] === 'function')
return cls[Symbol.hasInstance](obj)
else if (typeof cls === 'function') {
if (isObject(cls.prototype))
return cls.prototype.isPrototypeOf(obj)
else return false
} else throw new TypeError('cls is not callable')
} else throw new TypeError('cls is not an object')
}
typeof
'string', 'number', 'undefined', 'boolean', 'object', 'function', 'symbol'
本文向大家介绍说说 Dubbo 的实现原理相关面试题,主要包含被问及说说 Dubbo 的实现原理时的应答技巧和注意事项,需要的朋友参考一下 dubbo 作为 rpc 框架,实现的效果就是调用远程的方法就像在本地调用一样。如何做到呢?就是本地有对远程方法的描述,包括方法名、参数、返回值,在 dubbo 中是远程和本地使用同样的接口;然后呢,要有对网络通信的封装,要对调用方来说通信细节是完全不可见的,
本文向大家介绍说说 RPC 的实现原理相关面试题,主要包含被问及说说 RPC 的实现原理时的应答技巧和注意事项,需要的朋友参考一下 首先需要有处理网络连接通讯的模块,负责连接建立、管理和消息的传输。其次需要有编解码的模块,因为网络通讯都是传输的字节码,需要将我们使用的对象序列化和反序列化。剩下的就是客户端和服务器端的部分,服务器端暴露要开放的服务接口,客户调用服务接口的一个代理实现,这个代理实现负
本文向大家介绍说一下 HashMap 的实现原理?相关面试题,主要包含被问及说一下 HashMap 的实现原理?时的应答技巧和注意事项,需要的朋友参考一下 HashMap 基于 Hash 算法实现的,我们通过 put(key,value)存储,get(key)来获取。当传入 key 时,HashMap 会根据 key. hashCode() 计算出 hash 值,根据 hash 值将 value
本文向大家介绍说一下 HashSet 的实现原理?相关面试题,主要包含被问及说一下 HashSet 的实现原理?时的应答技巧和注意事项,需要的朋友参考一下 HashSet 是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成,HashSe
HashSet实际上是一个HashMap实例,数据存储结构都是数组+链表。 HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value都是一个统一的对象PRESENT。 private static final Object PRESENT = new Object(); HashSet中add方法调用的是底层HashMap中的put方法,pu
本文向大家介绍如何实现一个虚拟DOM?说说你的思路相关面试题,主要包含被问及如何实现一个虚拟DOM?说说你的思路时的应答技巧和注意事项,需要的朋友参考一下 就目前我想到的 就只有两种: document.fragment 2.template模板