【360】前端岗-一面面经 base北京

10.26 16:30 一面(≈45min)

是个女面试官,有阴影了(今年秋招遇女面试官就挂 )

平台:牛客

1、自我介绍

2、前端是自学还是学过相关课程?(自学

3、在学习或者实习过程中遇到过什么样的困难?怎么克服的?

(说了之前参加比赛的经历,面试官好像不是很care,直接问下面的问题了

——JS问题——

4、如何判断是数组还是对象?

 Array.isArray()    

 Object.prototype.toString.call()    
5、prototype和__proto__的区别   
 prototype是一个静态属性,__proto__是一个实例属性    


 每个方法Function都有自己的原型属性prototype,指向它的原型对象Function.prototype    

 每个对象都有__proto__属性,指向自身构造函数的prototype    
6、.call()是做什么的?   
可以通过call显式改变this指向,apply、bind也有类似的作用   
7、手写一个call   

个人实现:   
Function.prototype.myCall = function (obj, ...args) {
  let fn = this
  obj = obj || window
  obj.fn = fn
  args = args || []
  let res = obj.fn(...args)
  delete obj.fn
  return res
}

面试官说如果obj本身有fn的属性怎么办?那不就覆盖了吗?

(当时没答上来  应该是用Symbol对象   

8、看代码,说输出(考察this指向)   
window.num = 1

var obj = {
  'num': 4,
  'dbl': (function () {
    this.num *= 2
    return function () {
      this.num *= 2
    }
  })()
}

var obj1 = obj.dbl

obj

发表评论

后才能评论