记前端面试经历——面试题沉思录

背景:

趁着有机会,为了测试一下自己目前的技术水平,于是去参加了两次面试,因此进行一些记录,一来是记录一下自己这次遇到的这些面试题,二来,也为各位同行在这平日里积累更多的题,形成自己的题库。

 

面试题(记忆中搜集):

 

1. MVVM与MVC的区别是什么?

答:与传统MVC相比较,MVVM使用viewModel来作为model和view的桥梁,MVC中,是使用Controller来作为连接器。最大的区别莫过于实现了View和Model的自动同步,我们不用再手动去操作DOM,View层会自动改变和更新。(典型的MVVM模式代表:vue)

2. vue的双向绑定原理是什么?

答:(此问题刚好也能设计到上一题的MVVM模式)首先,双向绑定的效果为:Model层变化,View层会随着Model的变化而实时更新,反过来,View的变化也会导致Model层进行改变,从而产生这种两者互相影响,随之而变化,更新的效果。在Vue框架中的实现方式,就是利用Object.defineProperty()来定义set和get操作.

这里有我copy的一张有关这个方法的图片:取自于MDN对此方法的阐述

 

3.前端常见的设计模式有哪些?

答:单例模式,观察者模式,工厂模式,模块模式,构造函数模式。(具体的各种模式的原理及实现,请自行谷歌)

4.使用javascript编程,求两个三位数相乘的最大回文数。

答:(我在当时使用的是比较常规,也就是比较笨的方式,没有进行任何优化)我的思路:通过双层for循环,拿到两个三位数的乘积并toString(),然后定义一个空数组,用来将这个数push进去,然后通过一个另外的for循环来将数组中的这个数字的三位数字进行反转,再使用indexOf来判断数组中反转后的字符串是否与乘积的字符串相同,如果相同,就能拿到相应的回文数。之后再是进行判断来拿到最大的回文数。

5.开放题:请通过不同角度,阐述浏览器发起一个请求到渲染页面,发生了哪些过程,可通过系统,协议,浏览器等角度阐述。

注:此题角度比较多,所以在这里不好统一进行回答和分析。当时我是通过分析了在TCP/IP三次握手,以及浏览器从发起一个请求所含的请求头,请求行内容,以及返回的response中所包含的响应头响应行中的内容进行回答的。

6.ES6有哪些新特性,ES6以上的呢?

注:此题所含的内容比较广泛。需要自行查阅

7.闭包的优缺点

答:首先,对闭包进行一个通俗的定义:定义在一个函数内部的函数。

优点: 1.避免全局变量的污染

function a(){

var temp= "test";

  function b(){
    var btemp = "can not read";
    alert(temp) //结果为: test
  }

}

这里有两个函数,一个a,一个b, 我们能够在function b 中使用function a中的temp变量,但是 反过来,如果在function a 中去打印b中的变量(btemp), 是拿不到值的。

2.使变量留在内存中,不会在内部函数调用后被垃圾回收机制给回收掉。

缺点:优点中的第二点是优点也是缺点,因为滥用的话,会导致内存溢出。

8.前端性能优化的方式有哪些?

注:这里有一个比较详细的回答,来自于作者夜阑吹雨,值得借鉴。

9.谈谈对Javascript面向对象的理解。

答:实际上,就是对面向对象的理解,面向对象的三个特性为:封装,继承,多态,封装即将内部一些实现隐藏起来,只暴露相关的接口给用户使用,利于之后的修改与维护,就像使用电插座,我们只用将电器的三角插头插进电插座,而不需要知道内部到底有几根线,哪根是零线,哪根是火线,也不需要知道如何去把它们缠绕和分离。这些都是专业人员的事情,我们只管用就是了。有关这三个特性更多的知识点,请自行百度和谷歌,相信会有更详细的解释和阐述。

 

 

 

谈在最后:

    其实面试,并不是那么可怕和紧张的,有些问题,想不出最准确的答案,我们大可以用自己的理解来去阐述一下,无论对错,至少我们是对此问题进行了思考。而且,我认为,即使现在是在工作岗位上工作,也应该出去尝试一下面试,不论是否真的想跳槽,如果面试的平台发展前景较好的同时,薪资也能满足到你,那么面试后,可以尝试跳槽去该公司,如果并不想真的跳槽,也能从面试中获得很多感悟,比如自己目前的技术水平,沟通的能力,答题的技巧,同时,还能看出自己的被代替性是否很高,这样也能让自己从舒适区中稍微走出来一些,然后有动力去跟进学习进度,从而使得未来的跳槽,涨薪能达到更好的地步。

    最后,祝愿大家都能找到满足自己内心的那份热爱的,更高薪水的工作。在技术的道路上,成为大牛!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值