面试题记录

2020-04-21  本文已影响0人  json_q
面试题1
js中基础类型和引用类型有哪些,怎么判断(typeof, instaceof, Object.prototype.toString.call()),这几个方法的各自优缺点,instaceof 大概原理(代码写出来)

1:有哪些

2:怎么去判断各自优缺点

// 纂改例子
const time = new Date();
console.log(time instanceof Array); // false;

const time = new Date();

time.__proto__ = [];
console.log(time instanceof Array); // true

3:instaceof原理

// 在写原理之前我们理一下思路
[] instanceof Array // 意思就是A的__proto__能不能找到Array.prototype
const instanceof = (newObject, origin) => {
let newObjectProto = newObject.__proto__;
let originPrototype = origin.prototype;

// 一个循环如果不等一直查找,直到找到object原型的__proto__也就是null
while(true) {
   if(newObjectProto === null) {
   return false;
}
if(newObjectProto === originPrototype) {
 return true;
}

newObjectProto = newObjectProto.__proto__
}
}
上一篇下一篇

猜你喜欢

热点阅读