javaScript 面试集锦

130 阅读1分钟

原型相关

instanceof

instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

function Person() {};
let p1 = new Person();
p1 instanceof Person; // true, 检查的是Person.prototype 是否在p1的原型链上

_proto_(隐示原型)& prototype(显示原型)

  • 对象都有__proto__
  • 函数既有__proto__也有prototype

访问__proto__可以用Object.getPrototypeOf();
访问prototype可以直接调用

function Person() {};
let p1 = new Person();
Object.getPrototypeOf(p1) === Person.prototype // true

类型相关

类型转换

![] == [] 返回值是什么 答案是true

涉及到==以及!的知识点
先说!,会把右侧转换为布尔类型,[]转换为true,然后!true为false。
再说==,双等于在js中判断等号两端是否相等会将两侧转换为数字,在进行比较,则左侧false转换为0,右侧[]调用valueOf方法在转换为数字0,则![] == []。