这次一天时间面了两家公司,而且都是非常干脆地直接给了offer。
一家做编程教育平台,即将进入A轮。人数大概30人左右。不过公司业务我是非常喜欢的,一直都有一个老师梦。
技术聊天过程非常愉快,没有涉及到基本的面试题。技术哥哥是校友,比较看重我的简历。着重提问了我在学校的项目,挑战杯,大创,分别都负责什么事情,为什么要去做这件事,是不是负责人等等比较细节的问题。也很欣赏我组织前端分享会的经历。同时也和我详细地说明了公司的业务以及未来的发展规划。
而且让我比较感动的一点是,他们在面试我之前详细地看了我的博客和github,还能直接说出我的项目。让我有了分量很足的尊重感。
之后和CEO聊,他的重点是,我对自己的规划是不是和他们的发展一致。给我的感受是,他们需要的不是只在技术金字塔的人,而是愿意和他们一起走下去的成员。
由于和前端相关的技术涉及不多,这家公司的描述就到此。
另一家是做互联网旅游,办公地址就位于西溪景区之中,环境可以说是万里挑一了。下午3点一直到6点,最后hr姐姐还顺路送我到公交站。真的很感谢,两轮的技术面试官应该都是团队成员,都非常亲和。走的正常的笔试面试流程,不过问的内容相对也比较基础。只能说有惊无险了。
贴上过程
笔试
笔试题都比较简单,考察基本功,我写的比较顺利,涉及到同源和跨域、原型链、vue的基本使用、设计几个简单的函数,我就贴一下稍微印象深刻的题目
1. vue和Jq的区别
vue:数据驱动渲染页面,不需要操作具体的dom,页面与js耦合性弱,易于维护
jquery:依赖于dom,页面逻辑和代码逻辑一致,页面和js耦合性高
两者的设计思想是完全不一致的,应根据不同场合和需求选择合适的框架
2. 设计一个函数,传入一个数字n,若n可以被3整除的返回1,可以被5整除返回2,可以被7整除返回3
这个题目我在做的时候就觉得有问题,如果一个数既可以被3整除又可以被5整除呢?应该返回多少?题目并没有明确说明,我就猜测这可能是要考察输入校验
function Ajust(num){
if(typeof num !== "number" || num === null){
//排除输入为空,以及输入非数字数据
return false;
}else{
if(num!=0){
//排除0
if(num%3 === 0){
return 1;
}else if(num%5 === 0){
return 2;
}else if(num%7 === 0){
return 3;
}
}else{
retrun num+"不能被3,5,7中任何一个数整除"
}
}
}
面试的时候我提出了我的疑惑,面试官也一头雾水,所以我只能下结论是他们的题目有bug了
3. 小狗(Dog)叫声“wang”,小猫(Cat)叫声"miao",他们同属Animal。请用原型和对象的知识写出他们的关系
原题可能还要复杂点,记不太清了,考察原型链和对象
//构造函数
function Animal(){
this.word = "";
this.say = function(){
return "say " + this.word;
}
}
var Dog = new Animal(); // 实例Dog
var Cat = new Animal(); //实例Miao
Dog.word = "Wang";
Cat.word = "Miao";
面试
1. 基本数据类型有哪些
null,string,boolean,undefined,number
2. http返回的请求有几种?分别代表什么含义
1xx:信息状态码
2xx:请求成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误
4. 是否了解解构赋值
看过文档,主要包括赋值的模式和变量值,可以使用数组或者对象的形式对给定的变量进行赋值。然后举了个例子
const {a,b,c} = {a:"1",b:"2",c:"3"}
5. require和import有什么不同
import用于引入外部模块。
require不仅可以引用文件和模块,而且使用位置不受限制,可以在代码中使用
6. 是否了解promise
看过文档,在ES6中编写为原生标准。是一种异步编程的解决方案。Promise
有三种状态,pending(进行中),fulfilled(成功),rejected(失败)
,后两种合称为resolve(已定型)
,一旦状态定下,就无法发生改变。
7. ajax请求如何把异步改为同步?
ajax方法中有一个控制异步的字段"async",默认为true,表示异步。改为false之后就为同步
8. 函数中的This指向什么?
指向调用函数的对象。
面试官对我这个回答也并没有说什么,不过之后看来我这个说法也并不严谨,关于this的指向又是一个可以长篇大论的点了。
我先贴上红宝书上的说法:this引用的是函数执行的环境对象
有更多的想法可以看这篇文章从这两套题,重新认识JS的this、作用域、闭包、对象@相学长
9. apply和call可以做什么?有什么区别
改变this指向。两者作用基本一致,区别在于接收参数的方式不一样,apply用数组或类数组的形式接收参数
10. 左边定宽,右边自适应布局;中间定宽,两边自适应布局
- 左定宽,右自适应:
左部定宽,右部浮动,左外边距设为左部宽度 - 中间定宽,两边自适应:
margin:0 auto
11.html5和css3有哪些新增特性
html5:音频,视频,canvas,svg,等多的语义化标签等
css3:圆角,动画,滤镜等
hr面
hr姐姐真是太亲和了,全程跟我聊旅游,去了哪些地方,有哪些好玩的好吃的。知道我是温州的,更是停不下来,说很久以前去过温州的一个岛,从岛上风土人情讲到自己的职业规划。我就在一边微笑点头。恩,对对,是的,没错
最后hr姐姐还顺路送我到公交站。真的很感谢。
二战还算顺利,给了我这个小菜鸟很充足的能量,让我觉得我还不算太差
网友评论