面试心得

Posted by hdj on October 10, 2018

夭寿啊,被小姐姐看到了 聊天记录

对不起,小姐姐是高手,小姐姐是高手,小姐姐是高手,是我太菜,我最菜。

前言

最近换了工作稳定了下来,工作之余回忆一下找工作的路程,其中面了6家公司,拿到了2个offer,有一家公司的薪资和要求的有些差距就没接,相当于50%的offer率, 感觉自己还是可以的,虽然还有很多不明白的东西,但是感觉还是要勇于出去面试,知不足而补不足,方能有所进步。

###遇到的面试题

CSS

居中布局
  1. margin: 0 auto
  2. flex布局

CSS居中小结

三栏式布局
  1. float布局
  2. flex布局

JS

7种数据类型

基本数据类型:String Boolean Number Symbol(ES6新增) Undefined Null 复杂数据类型:Object

基本数据类型中有两个为特殊数据类型: null undefined 常见内置对象:Boolean Number String Array Math Date RegExp Function…

强制类型转换

总结:

        两个都是数值,则比较数值
        
        两个都是字符串,则比较字符编码值
        
        其中一个是数值,则要把另个转化成数值进行比较
        
        如果其中一个是对象,则调用 valueOf / toString 方法
        
        如果有一个是布尔值,则将其转化成数值 

从 [] == ![] 看 js 类型转换

闭包

了解一下JS闭包

原型链

关于javascript的原型和原型链,看我就够了(一)

关于javascript的原型和原型链,看我就够了(二)

关于javascript的原型和原型链,看我就够了(三)

javascript原型-终章 Obejct和Function到底是什么关系

继承

javascript继承,es6继承,node.js继承总结

this指向

面试官问:JS的this指向

ES6

class继承

Class 的继承

promise原理

Promise 对象

30分钟,让你彻底明白Promise原理

箭头函数的

箭头函数中this倒底指向谁?一句话,箭头函数内的this就是箭头函数外的那个this! 为什么?因为箭头函数没有自己的this。

解析 ES6 新增语法:奇妙的箭头函数

异步函数

了解一下generator函数

generator函数语法

Generator 函数的异步应用

会用async函数

async 函数

Vue

1.vue实现原理

vuejs2.0-Api

剖析Vue原理&实现双向绑定MVVM

深入理解vue 一些底层原理

2.vue生命周期

vue生命周期

3.组件之间通信方式
  1. 使用props,$emit $on进行父子组件传值
  2. 使用eventBus(事件总线进行传值)
  3. 使用vuex
4.computed 和watch的区别
  1. computed 当某个值取决于一个或其他值的变化时使用computed,(可缓存值)
  2. watch 当监测的的值变化时需要改变其他的值或者处理一些事情时使用watch

举个例子:以人的名字举例 fullName(全名) firstName (姓) name(名)

 获取全名时fullName的值取决于 firstName + name  所以fullName 使用computed最好
 
 当我们改变fullName时 firstName 和name也应该变化,所以要watch fullName 改变firstName和name
5.vuex原理

vuex官网

简书-玩烂vuex

6.v-if和v-show的区别

v-if 条件为真时不渲染, v-show渲染,不过display为none

以下摘抄于vueJS API

``
v-if vs v-show
v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。
 因此,如果需要非常频繁地切换,则使用 v-show 较好;
如果在运行时条件很少改变,则使用 v-if 较好。  
``

v-if-vs-v-show

7.数组去重

记住ES6的去重,出去还能装13

 ``Array.from(newSet(arr));``

JavaScript数组去重(12种方法,史上最全)

8.树递归

js 中二叉树的深度遍历与广度遍历(递归实现与非递归实现)

9.性能优化

有货移动Web端性能优化探索实践

面试公司趣谈

1.第一家公司

准备不足,问了一些关于vue的原理,生命周期,还有一些vue中的细节比如compute和watch的区别,if和show,slot用法等等,记得不太清楚了, 还有数组去重以及树的递归方法,这家公司待遇不错,时间相对弹性,不打卡,人也不错,可惜没有拿到offer,毕竟当时准备不足。

2. 第二家公司

第二家公司就比较坑了,做完笔试题然后,面第一轮,第一轮过了,第二轮接着面来了一位老司机,照着笔试题开始问各种细节,那时的我是真的是被问懵逼 了。这个人比较套路,故意给你说个假答案问你是不是,当时没反应过来,事后才觉得不对劲,总之是很这波操作很6了,第二轮面完就直接走了,说领导不在再通知, 大家都懂得吗,看着没戏,就灰溜溜的走了。结果第二天告诉我下周去复试, Wt the Fk?去了之后和前端的那个领导相谈甚欢,然后面完领导之后又面了一个 项目经理,聊得也还可以,最后面到了人事,基本上薪资也没太压,基本上就是过了,然后说要发offer了,真的是峰回路转啊。不过这个公司走流程实在是太慢, 走了一星期的流程才发offer,到最后我也没去这家公司,因为我感觉我无法面对那个二面我的面试老司机。。。

这家公司问了一些其他的问题,比如cookie的操作,cookie过期时间,首屏优化,代码压缩,还有跨域的问题。

3.第三家公司

这家公司比较坑了,百度了一小时的笔试题,写完手都累了,然后面试一看方向不对,他们这家公司是用react做特效的,我一个vue的过去五分钟就不得不走了, 差评,好想把简历要过来!这家人事莫非是个zz?气!

4.第四家公司

这家公司还不错,面试的都是一些基本问题,和js相关的问题,比如原型链,继承,闭包,this指向,会给你一个例子问你为什么,问的也很基础,但是我不太会, 羞愧。。,其中问的vue的一个父子组件的更新先后顺序问题,被我答错了,面试官应该很失望,没办法,自己还是太菜了。

5.第五家公司

这家公司面试官比较随和问的也是一些面试常问的问题,webpack打包优化,首屏优化,其中manifest离线缓存被问到了,自己不太了解,学习了一下。 接着这家领导开始面我,这家领导非常nice,应该是个海龟,学历应该很高,问你一个问题,只要你答到点上了就直接ok,不让你说废话了,直接下一个问题, 非常好,就是最后薪资没谈成,不得不遗憾了。

6.第六家公司

这家公司是我目前入职的公司,本来都打算去第二家公司了,然而有点膈应,突然有个前同事,推荐我去这个公司,然后我就去了,然而比较搞笑的是这家公司有一个子公司,我前同事推荐我去的是他们
子公司,但是面试时在总公司,然后我去面试的时候,直接被总公司的人面了,顺利通过之后给同事说我面试过了,然后我前同事应该是黑人问号脸.jpg, 过了什么情况,你在哪,你来了,我怎么不知道? 哈哈哈,然后他们子公司的人气不过,找的人事,第二天又把我拉过去面了一次,因为是内推,也没 问什么问题,就是意思一下就过了,毕竟总公司那边都要发offer了。

总结一下

一开始出去面试还是比较忐忑的,毕竟在原公司没学到什么东西,带我的小姐姐也不是什么高手,都是在摸着石头过河,所以自己感觉还是有点菜, 然而面了几次之后发现自己的不足,查缺补漏之后感觉自己还是有点东西的,没有那么菜,起码比一些刚出师得强。