0%

前端面试题

记录一篇面试相关的文章,这样就不用每次都要去搜面试相关的内容了。

参考文章,面试题的分类可以按照这篇文章来,具体的面试题,尤其是原理部分的,由于工作中用不到,死记硬背很快就会忘(当然明天就要面试还是要的)。原理部分就多看多理解,实践部分的内容就一定要动手敲,眼高手低,只会是眼睛懂了,剩下都没懂。

2020-02-27

  1. 考查知识点:原型

    1
    2
    3
    4
    function Person(name) {
    this.name = name
    }
    let p = new Person('Tom')

    问题1:p.__protp__等于什么————Person.prototype

    问题2:Person.protytype等于什么————Function.prototype

    要记住的知识点:

    • prototype属性是个对象,是函数才拥有的属性,声明函数时这个属性被自动创建。
    • 实例的proto属性(原型)等于其构造函数的prototype属性。
    • 原型链是通过proto属性形成的。
    • 函数都是由new Function()创建的。
    • 原型链的终点是Object.prototype。Object.prototype.proto是null。
    • 更详细的内容看[这篇文章][2]

    [2]: https://juejin.im/post/5aa78fe66fb9a028d2079ca4

    再看看这道题目:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var foo = {},
    F = function(){};
    Object.prototype.a = 'value a';
    Function.prototype.b = 'value b';

    console.log(foo.a)
    console.log(foo.b)
    console.log(F.a)
    console.log(F.b)
  2. new 操作符都干了啥。构造函数没有返回值,显示返回一个对象,显示返回非对象类型的值三种情况的区别。