Ⅰ 美团前端面试难吗
美团目前也是在大量的招人啊~~当时参加的是美团打车部门的面试(一年工作经验以上的),部门技术栈vue,后台就是node,一面通过,等了两个小时面试二面,然后通知我回去等消息,一般这样就是挂掉了,毫无疑问。美团是一次性全部面完的。所以去参加最好做好面试四个小时的打算。
先来聊聊一面吧~哈哈
一面
1.简单的自我介绍,与大体的了解我。。。
一面面试官非常不错,先问了下几个项目和用到的技术,会先对我懂的东西做一个大体的了解,比如webpack的单页面的多页面切换,webpack的按需加载,一些webpack的配置有哪些,问了有没有看vue源码,我说了一个vue的watch,大体问了问我框架方面的东西,发现我对框架并不是很熟练,安慰我说没有关系。
2.promise的原理
这个面试官最让人欣赏的就是不会去问你不了解的东西,一开问了我promise,发现我用的并不是很多,就很自然的说没事,换一种方法问你~~~好和蔼啊~
然后就让我用原生js写一个回调函数,其实就是问promise的原理了,js写一个。
3.this指向
这个是面试官手写了一道变态长以及绕的this指向题,可以自行网络js this指向面试题,看几道没有啥问题,需要关注的是其中也考了,argument,和apply(null)。以后想起来再写吧
4.bind与函数柯里化
也就是写个bind,这个红皮书高级函数(22章)有,
可以看下。不过还是得先理解bind的用法,返回一个函数,以及可以传递的参数。参数这里涉及到了函数柯里化。都是手写代码,而且最好写的整洁,因为我有些一笔带过,面试官都让我写完整,明确说要看我写代码水平
5.==, isNaN, typeof
问这个之前先问了我有几种数据类型(七种,下图再加symbol),这里隐形的看你知不知道es6,symbol这个新出的类型。说出了symbol自然会问你这个类型有什么用。
然后就写了好多个typeof,isNaN,==的问输出,这个就是基础题
6.知道什么http请求头?
这个可以说的很多,说了几个,又主动说了下有关跨域请求头,之前项目用的cors,于是和他聊了一会,其实面试就是主动表现自己,把自己知道的都说出来,不然几个请求头说细不细,要问细了能把人问蒙了,最好把话题引到自己知道的地方。
7.问了css
问了css盒子并画出来,清除浮动与bfc,两列布局。
8.说了一大堆其实就是想考我防抖
面试完这个问我想问的问题,我直接问还有二面么?回答有的,又介绍了一会美团打车,说是后台是node,看来要求是前端也要有后台的知识喽。
二面
二面的是我的学长,可是我被问惨了。。。。问的显然比一面深入很多,都问了java
1.自我介绍,问项目
针对项目问了不少,当时有一个支付行为的项目,于是问了很多安全方面的问题,蒙蒙的,完全不知道。第一个就很失败了。然后问了其他的项目,问了websocket。
2.node的EventEmitter用js实现出来
写出来了,但是可以看出来代码写的不规范,学长面试官表示看起来很乱。不过大约算是可以的,指出了几个问题,让我进行修改。(之后完善)
3.虚拟dom
其实vue中就有jsx,react的特点之一有jsx,虚拟dom和代码优化有点关系。
先说下正常对dom的操作,在浏览器中分为渲染引擎和js引擎,现在浏览器内核一般都是渲染引擎(生成渲染树),因为js引擎越来越独立了(所谓的v8引擎?)
然而你在js中获取dom元素的时候你必须要通过渲染引擎,这样两个线程之间的数据交换自然会很慢。所以在前端优化中总是要考虑减少dom操作这一项。包括获取dom元素变量储存起来。
jsx是把dom元素变成了储存在内存中的数据结构。js很快,操作dom也很快。不过也存在缺点,目前的理解就这么点了。
4.路由的实现原理
饿,不知道。。(待会看!)
5.node文件流,java的映射机制(记不太清楚)?
饿。。
6.数组方法map和recer区别?
饿
7.进程与线程的区别
终于有个我会的了,这个显然想问你js的运行机制。先介绍了下进程与线程。
一个浏览器是一个进程,虽然js是单线程的,但是浏览器是多线程的,v8引擎也是多线程的,比如有渲染线程,有处理请求的线程。然后说说任务队列,eventloop。没有理解很深也不敢往下说。
事件循环可以看下这个,链接
8.树遍历
先序,中序,后序。我只知道这么多了,显然想让我写一个的,可是不会。也显然面试官内心已经把我pass掉了,没多问。
9.问了个算法
KMP??反正我不知道。
Ⅱ 面试Web前端需要注意什么会面试哪些问题
作为一名HTML5前端工程师,为了工作,为了就业我们免不了要参加各种各样的面试。为此总结了面试前的注意事项:
第一:注意自己的仪容仪表
面试之前,一定要再次从头到脚地将自己的仪容仪表检查一遍。检查时主要包括,自己的牙缝是不是还有食物残渣,所以你需要就近找一个卫生间,如果没有卫生间就近找一个角落也是可以的,但是切记一定不要在大庭广众之下。因此,为了给自己整理出着装的时间请在约定时间前20分钟到达。
第二:再次检查面试时所需的资料是否都已带全
这些资料主要包括:身份证明、学历文凭证明、个人简历、以往作品等等,如果这些东西齐全之后,需要对这些资料做一个整理与排序。因为没有哪个面试官希望看到面试者拿出一堆“莫名其妙”的东西塞给他,让他自己再一页一页的翻找自己需要的内容,如果说这些资料在面试官手中不小心散落一地,结果可想而知。这样的求职者在面试官眼中也一定不是一个让人放心、有条不紊的员工。当然如果检查时发现资料没有带全,也不要紧张。反而你要庆幸幸亏及时检查,也有足够的时间组织语言去向面试官解释。
第三:面试之前将通信工具调成振动或关闭状态
虽然说面试者与面试官之间是一个平等的关系,但毕竟你是去人家公司求职的,始终处于一个被动的状态,所以最起码的尊重还是要做到的。曾经有调查显示,对于面试过程中接电话或是被电话打断的求职者,会被HR减分。
第四:等候面试官时,仔细观察多了解面试公司
在等候面试官时,可以暗自观察一下公司的大体情况比如员工的着装风格、公司的LOGO或是贴在墙上的企业文化、公司的环境等等,一来可以在接下来的面试过程中表现出自己对公司的认同感,二来也可以让自己对求职公司多些了解,以确定是否要接受这里的工作。如果你身边有公司的资料宣传架,不妨取一本翻看一下,也会增加HR对你的好感。
第五:放松心情,保持自信
面试时一定要保持一定的自信,这样也会给面试官留下很好的印象。面试只是你步入工作的第一步,即便是失败了那也是人生重要的经历。失败是为了更好的迎接下一个挑战。
作为一名web前端工程师千万不要觉得懂技术面试就能万事大吉了,像以上五点细节性的东西也是一定要掌握的。
面试题系列:
网页链接
Ⅲ 求web前端开发笔试题
最低0.27元/天开通网络文库会员,可在文库查看完整内容>
原发布者:触不可及112
Web前端开发系班级姓名成绩1、目前常用的WEB标准静态页面语言是________。2、改变元素的外边距用________,改变元素的内填充用________。3、在Table中,TR是________,TD是________。4、如果给一行两列的表格(table)定义高度样式,在________标签中定义最合理,最能减少代码的臃肿。5、对ulli的样式设成无,应该是用什么属性________。6、在新窗口打开链接的方法是________。7、合理的页面布局中常听过结构与表现分离,那么结构是________,表现是________。1、在下面的XHTML中,哪个可以正确地标记折行?A:
B:C:
2、下列哪些是格式良好的XHTML?A:Ashortparagraph
B:
Ashortparagraph
C:
Ashortparagraph3、在以下的HTML中,哪个是正确引用外部样式表的方法?A:B:css"href="mystyle.css">C:mystyle.css4、在HTML文档中,引用外部样式表的正确位置是?A:文档的末尾 B:文档的顶部C:部分D:部分1、请写出超链接的顺序或者你在初始样式中的链接方法。(10分)2、当float和margin同时使用时,IE6的双倍边距BUG如何解决?(6分)3、为什么无法定义1px左右高度的容器?(7分)4、Firefox中标签的居中问题的解决方法
Ⅳ 做了好几家的前端笔试题,感觉好难啊,我该怎么应对接
主要还是要看HR了,面试基本知识会就行了 HR要是好的,啥都好说,不然就是歇菜
Ⅳ 求web前端开发常见的面试题,和一些浏览器兼容性问题,理论知识,要求简洁,最好有题库
http://www.w3cfuns.com/forum.php?mod=forumdisplay&fid=51&filter=typeid&typeid=177里面有很多公司的笔试题
Ⅵ 前端笔试题目求解答!!求写出具体代码
其实很简单,就是一些js判断就可以实现了,可以先用冒泡排序对它们进行排序,然后将前100名塞进一个数组里面,当然还有排序的时间和用户的id等,然后在排行榜按顺序输出array[0 - 100] ,用户访问的时候判断一下用户id是否在这个数组,如果在输出数组的内容。如果不在然将 101 - 9999塞进另外一个数组,再查询用户id在不在这个数组,如果在,输出用户id 对应的排名,如果不在那就是直接输出未上榜
Ⅶ 应聘软件测试,一般会有什么笔试的题目
1:测试基础理论;
2:网络协议知识;
3:linux
4:sql语句
5:测试用例--必问
6:代码知识
7:逻辑题
=========
软件测试面试题大全-最真实的面试题
以下为童鞋去面试整理的面试问题。--真实软件测试面试题、真实公司所问的
适合人群:零基础学习软件测试、多年跳槽的人员
面试过程中也会有深挖的,这些就不在多写。还有些待整理的,慢慢补上、完善。
希望对各位有所帮助!!!来源--Dotest
1:个人介绍
2:项目介绍
3:流程逻辑介绍
4:职责介绍
5:项目人数,分别负责的是什么
6:每日工作介绍
7:接口如何测试的?用例如何设计?
8:一个项目中大概有多少个接口
9:get\post的区别
10:常见的状态码是什么
11:postman、Jmeter\soapui的区别
12:公司流程
13:需求评审是怎么进行的
14:测试计划怎么写的?重点是什么?
15:测试用例的思路?
16:如果我们没有原型图、需求的话,你怎么写用例
17:给你个app\web你能快速说下用例的设计思路吗?
18:app与web的不同点是什么?
19:测试报告的重点
20:什么是灰度测试
21:上线后的跟踪如何做的?
22:为什么要做上线后的回归测试
23:上线后发现的问题如何处理
24:什么是UAT测试,为什要做UAT测试
25:bug怎么描述的
26:用例怎么描述的
27:优先级和严重程度如何划分
28:如果和开发有歧义的话怎么办
29:你映像bug是什么?
30:你发现一个bug如何定位的
31:自动化测试如何进行的?用的什么框架
32:常用的定位方法是什么?
33:功能测试与自动化的区别
34:什么样的项目适合自动化
35:自动化的好处是什么
36:自动化的劣处是什么
37:你感觉你写的用例覆盖全面吗
38:上线后发现的问题如何处理
39:linux常用的命令
40:linux常用的文件
41:linux环境搭建的步骤
42:常用sql语句
43:你们公司用sql吗,怎么用的
44:兼容测试你怎么做的
45:手机是如何考虑的
46:兼容测试的重点是什么
47:如果手机不够的话你怎么解决
48:真机和模拟器的区别是什么
49:你如何保证兼容的覆盖率
50:怎么抓手机的数据包的?如何设置
51:通过抓取数据包主要测试什么
52:性能测试做吗?怎么做的
53:python的遍历是什么
54:随意丢个软件说下具体的用例
55:你们公司多长时间迭代一次
56:迭代测试需要注意什么
57:你映像最深的bug是什么
58:你的期望薪资
59:你看比预期低2k,你能接受吗
60:我们公司加班多,能接受吗
61:能接受出差吗?
62:路程有点远
63:你为什么要离职
64:你感觉你的优势在哪?
65:你未来的规划是什么
66:你对下一个工作岗位有什么期望或要求吗
67:对你的领导有什么要求吗
68:你感觉你上家公司怎么样;能说下优缺点吗?
69:你感觉你上家领导怎么样;能说下优缺点吗?
70:有女朋友\男朋友吗?
71:打算什么时候要孩子
72:你看你有什么想问的吗
73:你大概什么时候能入职
74:最近面试多吗?
75:手上有offer吗?
76:你是什么时候开始找工作的?
77:你从上家公司离职已经有好几天了,是刚开始找工作吗?\为什么一直没找工作
Ⅷ 有哪些经典的 Web 前端或者 JavaScript 面试笔试题
一、不定项选择题 (每题3分,共30分)
1. 声明一个对象,给它加上name属性和show方法显示其name值,以下代码中正确的是( D )
A. var obj = [name:"zhangsan",show:function(){alert(name);}];
B. var obj = {name:”zhangsan”,show:”alert(this.name)”};
C. var obj = {name:”zhangsan”,show:function(){alert(name);}};
D. var obj = {name:”zhangsan”,show:function(){alert(this.name);}};
2. 以下关于Array数组对象的说法不正确的是( CD )
A. 对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序函数的参数
B. reverse用于对数组数据的倒序排列
C. 向数组的最后位置加一个新元素,可以用pop方法
D. unshift方法用于向数组删除第一个元素
3. 要将页面的状态栏中显示“已经选中该文本框”,下列JavaScript语句正确的是( A )
A. window.status=”已经选中该文本框”
B. document.status=”已经选中该文本框”
C. window.screen=”已经选中该文本框”
D. document.screen=”已经选中该文本框”
4. 点击页面的按钮,使之打开一个新窗口,加载一个网页,以下JavaScript代码中可行的是( AD )
A.
onclick=”open(‘new.html’, ‘_blank’)”/>
B.
onclick=”window.location=’new.html’;”/>
C.
onclick=”location.assign(‘new.html’);”/>
D.
5. 使用JavaScript向网页中输出
hello
,以下代码中可行的是( BD )
A.
document.write(
hello
);
B.
document.write(“
hello
”);
C.
hello
D.
document.write(“hello”);
6. 分析下面的代码:
function writeIt (value) { document.myfm.first_text.value=value;}
以下说法中正确的是( CD )
A. 在页面的第二个文本框中输入内容后,当鼠标离开第二个文本框时,第一个文本框的内容不变
B. 在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,将在第二个文本框中复制第一个文本框的内容
C. 在页面的第二个文本框中输入内容后,当鼠标离开第二个文本框时,将在第一个文本框中复制第二个文本框的内容
D. 在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,第二个文本框的内容不变
7. 下面的JavaScript语句中,( D )实现检索当前页面中的表单元素中的所有文本框,并将它们全部清空
A. for(vari=0;i< form1.elements.length;i++) {
if(form1.elements.type==”text”)
form1.elements.value=”";}
B. for(vari=0;i
if(forms[0].elements.type==”text”)
forms[0].elements.value=”";
}
C. if(document.form.elements.type==”text”)
form.elements.value=”";
D. for(vari=0;i
for(var j=0;j
if(document.forms.elements[j].type==”text”)
document.forms.elements[j].value=”";
}
}
8. 在表单(form1)中有一个文本框元素(fname),用于输入电话号码,格式如:010-82668155,要求前3位是010,紧接一个“-”,后面是8位数字。要求在提交表单时,根据上述条件验证该文本框中输入内容的有效性,下列语句中,( A )能正确实现以上功能
A. var str= form1.fname.value;
if(str.substr(0,4)!=”010-”|| str.substr(4).length!=8 ||
isNaN(parseFloat(str.substr(4))))
alert(“无效的电话号码!”);
B. var str= form1.fname.value;
if(str.substr(0,4)!=”010-” && str.substr(4).length!=8 &&
isNaN(parseFloat(str.substr(4))))
alert(“无效的电话号码!”);
C. var str= form1.fname.value;
if(str.substr(0,3)!=”010-”|| str.substr(3).length!=8 ||
isNaN(parseFloat(str.substr(3))))
alert(“无效的电话号码!”);
D. var str= form1.fname.value;
if(str.substr(0,4)!=”010-”&& str.substr(4).length!=8 &&
!isNaN(parseFloat(str.substr(4))))
alert(“无效的电话号码!”);
9. 关于正则表达式声明6位数字的邮编,以下代码正确的是( C )
A. var reg = /\d6/;
B. var reg = \d{6}\;
C. var reg = /\d{6}/;
D. var reg = new RegExp(“\d{6}”);
10. 关于JavaScript里的xml处理,以下说明正确的是( BCD )
A. Xml是种可扩展标记语言,格式更规范,是作为未来html的替代
B. Xml一般用于传输和存储数据,是对html的补充,两者的目的不同
C. 在JavaScript里解析和处理xml数据时,因为浏览器的不同,其做法也不同
D. 在IE浏览器里处理xml,首先需要创建ActiveXObject对象
二、问答题
1. 列举浏览器对象模型BOM里常用的至少4个对象,并列举window对象的常用方法至少5个 (10分)
对象:Window document location screen history navigator
方法:Alert() confirm() prompt() open() close()
2. 简述列举文档对象模型DOM里document的常用的查找访问节点的方法并做简单说明 (10分)
Document.getElementById 根据元素id查找元素
Document.getElementByName 根据元素name查找元素
Document.getElementTagName 根据指定的元素名查找元素
三、程序题
1、补充按钮事件的函数,确认用户是否退出当前页面,确认之后关闭窗口; (10分)
function closeWin(){
//在此处添加代码
if(confirm(“确定要退出吗?”)){
window.close();
}
}
2、写出简单描述html标签(不带属性的开始标签和结束标签)的正则表达式,并将以下字符串中的html标签去除掉(15分)
var str = “
这里是div
里面的段落
”;
//
varreg = /<\/?\w+\/?>/gi;
varstr = “
这里是div
里面的段落
”;
alert(str.replace(reg,”"));
3、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。(10分)
function foo() {
//在此处添加代码
var rdo =document.form1.radioGroup;
for(var i =0 ;i
if(rdo.checked){
alert(“您选择的是第”+(i+1)+”个单选框”);
}
}
}
4、完成函数showImg(),要求能够动态根据下拉列表的选项变化,更新图片的显示 (15分)
function showImg (oSel) {
//在此处添加代码
var str = oSel.value;
document.getElementById(“pic”).src= str+”.jpg”;
}
Ⅸ 前端面个试咋这么奇葩,笔试题根本没啥用
前端面试不一定都需要笔试。
因为像一些比较技术比较牛的前端开发工程师,它是很难接受笔试,面试的,因为笔试的内容一般都是一些基础方面的内容但是这些内容在实际应用过程中是很少用到的,所以一般笔试是很不容易通过的,但是他的技术能力是非常牛的,所以他是不会接受笔试的,有些公司也不一定需要笔试。
Ⅹ 美团网美团点评校招 前端开发 笔试题只考JS吗
不是,基本什么都考,很多都是上课学的,后悔当时没好好听