【面试记录】 第二次web前端应聘面试

  【面试记录】 第二次web前端应聘面试

  一、问题:

  1.介绍一下自己。

    简单介绍自己,会使用什么技术,最近做项目有过什么问题,如何解决的,把面试官带到你熟悉的技术上。

  2.你是21年毕业生,这一年都没有工作吗?

    略

  3.css当中position属性都包含什么值?他们之间是相对于谁来进行定位?

    最开始没听懂单词是什么意思,英语听力基本为0,反映了30秒,才对上号问的是什么问题。

    答: 1)relative | absolute | fixed 缺少一个static(默认值)最难受的就是单词读不明白

       2)relative :相对定位,相对于自己本身原来位置进行的定位偏移。

        absolute :绝对定位,相对于父级元素进行定位,如果父级元素没有定位,那就相对于父级的父级进行定位,以此类推,直到body。

        fixed:固定定位,相对于浏览器进行定位。且不会随滚动条滚动。

        static默认值:静态定位。

  4.let、var、conts有什么区别?

    1)var:es6之前用于定义声明变量。可以变量提升。可以重复定义变量,值为最后一次定义值。作用域为全局和局部。全局变量可以为window的对象属性。

    2)let:es6之后用于定义声明变量。不可以进行变量提升。不可以重复定义。作用域为块级作用域。不可以为window对象属性。

    3)const:es6之后用于声明变量(常量)。第一次赋值后,不可以更改其变量值。

  5.原型与原型链。

    完全不会的一道题。

    原型:JS的任何一个对象都拥有一个“原型对象”,他可以使用自己原型对象上的 所有属性与方法。

    原型链:在JavaScript中万物都是对象,对象和对象之间也有关系,并不是孤立存在的。对象之间的继承关系,在JavaScript中是通过prototype对象指向父类对象,直到指向Object对象为止,这样就形成了一个原型指向的链条,专业术语称之为原型链。

 

 

 

  6.在浏览器输入url到页面加载显示,都经历了什么?(没答上)

    (DNS解析)=> ①
    (TCP连接:三次握手) => ②
    (发送HTTP请求) => ③
    (服务器处理请求并返回HTTP报文) => ④
    (浏览器解析渲染页面) => ⑤
    (连接结束:四次挥手) => ⑥

  7.vue生命周期(2.0)

    创建、更新、渲染、销毁;具体细分为八大钩子函数。

    1)beforeCreate() 创建前。data中数据未定义,不能使用。

    2)created()创建后。最早开始使用 data和methods中数据的钩子函数。

    

    3)beforeMount()渲染前。内存中生成dom树,但未渲染到页面中去,页面还是旧的。

    4)mounted()渲染后。dom已经渲染完毕,页面和内存中都是最新的数据,最早可以操作DOM元素钩子函数。

 

​    5)beforeUpdate()更新前。当视图层的数据发生改变会执行这个钩子 内存更新。DOM节点还未更新,数据没有与页面同步。

    6)updated()更新后。数据更新完成以后触发的方法,DOM节点已更新。

 

​    7)beforeDestroy()即将销毁。data和methods中的数据此时还是可以使用的,可以做一些释放内存的操作。

    8)destroyed()销毁完毕。组件已经全部销毁,Vue实例已经被销毁,Vue中的任何数据都不可用。

  8.v-model双向绑定的实现原理。

    是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调从而达到数据和视图同步。

    主要划分四步:

      1)observer 主要是负责对Vue数据进行递归遍历,使其数据拥有get和set方法,当有数据给某个对象值赋值,就触发 setter 就监听到数据的变化了。( 如有变动可拿到最新值并通知订阅者 )

      2)compile 指令解析器负责绑定数据和指令解析。 将模板中的变量替换成数据,然后初始化渲染页面视图,并将每个指令对应的节点绑定更新函数。一旦数据有变动,收到通知,更新视图

      3)订阅者 watcher : Watcher订阅者是Observer和Compile之间通信的桥梁,主要做的事情是 负责数据监听,当数据发生改变,能调用自身的update()方法,并触发Compile中绑定的更新函数

      4)实现一个订阅器 dep: 采用发布者订阅者模式,用来收集订阅者的 watcher,对监听器 observer 和订阅者 watcher 进行统一管理

 

  9.vue当中传值的方法有哪些?

    父子组件之间:props(父传子)、$emit(子传父)、$ref

    兄弟组件之间:全局事件总线、订阅发布模式。

    vuex

  二、问题总结:

  1.听不懂单词无法对应到底是什么意思,而且无法正确发音单词。多听多练。

  2.js基础不牢固,对很多细节知识点都不了解。

  3.对低层运行不了解。例如6与8。

  4.面试动作太多,给人一种不牢靠、没有自信的感觉。每天自己录视频,自己对自己面试,找问题所在。

    期待下次面试,每一次面试都是一次磨练。

posted @ 2022-07-05 21:07  WangED  阅读(44)  评论(0)    收藏  举报