【面试记录】 第二次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.面试动作太多,给人一种不牢靠、没有自信的感觉。每天自己录视频,自己对自己面试,找问题所在。
期待下次面试,每一次面试都是一次磨练。

浙公网安备 33010602011771号