每年的3,4月份,是准备找实习的时间。这两个月期间,我大大小小投了不下十几家公司,有笔试就被刷的,投了简历就石沉大海的。也有面到hr面就没回音,自动进入备胎池的。各种心酸….
不过,最后还是拿到了腾讯,IBM,Daocloud的实习offer。
这两个月时间,我成长了很多,也学到了很多东西。因此,想把我面试的经验分享出来。不仅供自己以后复习,也更希望能够帮助更多的人。希望大家一起分享交流,部分题目的答案在我的博客链接里,可能有些地方写的不是很对,希望大家能多多指教,一起学习交流。
加油!!我们都是最棒(pang)的。笔芯~~~
找出n个数中第k大的数
这个很简单,剑指 offer上的原题,通过剪枝的快速排序或者堆排序都可以解决。
一个字符串web(dev(ni(cat(new))))
,找出第n个括号中的内容
母牛生仔问题:一只母牛,第二年底生一只母牛和一只公牛,第三年底生一只母牛 ,第五年开始母牛会死。公牛也只能活四年。请问一个农场开始只有一只刚出生的母牛,N年后一共有多少只牛。
这题可以用递归和面向对象的解法来做,我当时用的特别蠢的面向对象解法,后来查了查资料,用递归更简单些。这里献上 母牛生孩子递归题解
各种跨域实现方法
跨域总结与解决办法
this作用域
会react嘛?
不会。
为什么学vue不学react呢?
还没来得及学。
为什么要先学vue呢?
(各种汗)……后来随便扯了一通
第一次进入hr面,特别开心的和小姐姐聊了很久,然后就回去等消息了。
然后就没有然后了,进入备胎池中。。。。。
实现一个三栏布局,两边定宽中间自适应的布局
圣杯布局,双飞翼布局,flex布局
最好用双飞翼布局,因为可以实现BFC。但窗口宽度过小时,宽度就不会在缩小,导致三栏布局错版。
你刚刚提到了BFC,那什么是BFC?
卧槽!!!又给自己挖坑了。。。。。
BFC神奇背后的原理
css盒子模型
w3c盒子模型和IE盒子模型
给定一个元素获取它相对于视图窗口的坐标
offsetHeight, scrollHeight, clientHeight分别代表什么
CSS如何实现居中
我回答了两种,还在问一直我有没有其他方案了。直到我哑口无言…
CSS各种居中方法
transition的属性值和应用
rem和em的区别
js的闭包问题
严格模式的特性
可以参考这两篇博客。
Javascript 严格模式详解
ES6的promise
js的原型链,如何实现继承?手写代码。
原型链我边画图边解释的,不过估计是画的太烂,面试官被我绕晕了。
就要我别瞎画了,直接手写继承代码。
js如何实现继承
已经拿到offer
如何实现图片滚动懒加载
js实现一个图片懒加载插件
高性能滚动 scroll 及页面渲染优化原理与实例
输入一个url后发生了什么?
可以参考这篇文章
说出es6的三个特性
考察了this的三种应用场景
CSS中的长度单位
px,pt,rem,em,ex,vw,vh,vh,vmin,vmax
如何实现一个矩形的椭圆边角
使用border-radius:a/b;
vue的优点和特性,如何实现双向绑定
UMD规范和ES6模块化,Commonjs的对比
面试两天后收到offer
实现一个常见的移动端三栏布局。上下定高且固定fix,中间栏自适应高度且可以滚动。
实现一个calendar组件
resize和scroll事件的性能优化
已拿offer
有sql的选择题,具体记不清楚了
算法题是背包问题
类型转换,判断下列的真假
var undefined;
undefined == null;
1 == true;
2 == true;
0 == false;
0 == '';
NaN == NaN
[]==![]
[]==false
可以参考一行神奇的javascript代码
4. 前缀表达式的中缀形式
hr面是英文自我介绍,我没准备,所以临场发挥的。还顺便用英语聊聊天,谈谈项目。
最后查查户口,谈谈人生聊聊理想
ECMA262 曾有收到过这样的提议 “Optional Chaining”:当我们需要查找一个很深层的属性时,经常需要确保每一级父节点的存在,
var street = user && user.address && user.address.street;
建议使用 “Optional Chaining Operator” 来简化类似的操作:
var street = user?.address.street;
一旦 “?.” 前面的表达式返回 null 或 undefined,则整个表达式返回 undefined,请实现一个函数完成类似的功能。
s
function optionalChaining(obj, chain) {
// your code here
}
optionalChaining(user, 'address.street'); // No.969 West WenYi Road
optionalChaining(user, 'age'); // undefined
我的解法:
function optionalChaining(obj, chain) {
var res;
var key = chain.split('.');
for (var i = 0; i < key.length; i++) {
(function (j) {
obj = obj[key[j]];
console.log(obj);
if (!obj) {
return res;
}
})(i);
}
}
var user = {
address:{
street:'No.969 West WenYi Road'
}
}
// optionalChaining(user, 'address.street'); // No.969 West WenYi Road
optionalChaining(user, 'age'); // undefined
从200缓存,到cache到etag再到
把脚本自动加版本后缀。
怎么实现?
使用webpack项目构建工具可以实现。
不用工具自己能手动实现吗?
额。。。。。不会
function(){
var a=undefined;
function b(){
}}
提示:new Function()
js只有函数作用域,可以将a包裹在function或者IIFE中
可以参考JavaScript笔记:函数作用域和块作用域
OPTIONS请求方法的主要用途有两个:
1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
2、用来检查服务器的性能。例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。
- 301永久重定向
- 302暂时重定向
- 303,307是HTTP1.1对302的扩充
还有呢?
不知道
有一个2开头的,和缓存有关的,知道吗?
不知道。(其实是200 for cache)
get和post的区别
阿里二面重项目,穿插着问一些基础知识。
不了解。
flex布局。
其他的细节呢?
这方面没有深入研究,不懂
圣杯布局,双飞翼布局,flex布局
- websocket的工作原理和机制。
- socket如何实现通信?
- vuex的工作原理流程
- 项目如何实现模块化的?
AMD,CMD,UMD,commonJs
前端实现:Jsonp,cors,iframe+window.name
后台:access-control-allow-orign
跨域总结与解决办法
学习
正在实验室敲代码,突然接到个北京的手机打来的电话,一接,居然是面试!!!我勒个去,立马整装上阵。
面试官好像很赶场子,我回答超过4句话就开始不停地说’okok’。
我就只敢说重点,不啰嗦,回答的也很一般。后来挂了。
上来就是一道题目:
嗯,当时磕磕巴巴做出来了。
花了一个半小时,而且写的代码特别渣,兼容性,可扩展性,组件化思想全都没考虑。代码也写的很晦涩。。。。。
面试官问:“你给自己打多少分?”
我说:“不及格”。
不过面试官黎腾大大 人很好,给我详细的说了我还有哪些地方做的不够好,以及优化思路。所以后来花了一天时间,写了个仿百度实时下拉搜索框,源码在这里
也是电话面试,问了一堆项目之后,面试官加了我的qq,给我发了几道题目
我回答的很差劲,所以又被刷了。
第二次了,KO!!
真的猛士,就要有死缠烂打的勇气。于是乎,被KO两次的我,不死心的又去参加4.2号的在线笔试了。
结果,居然收到面试通知了???开心~~~
(后来才知道腾讯是海面,任何人不管笔试多差,都可以参加。这一点很棒哎~~~~而且也很欢迎大神们去霸面,还专门设了个霸面专区)
笔试做的很渣,编程题两道基本没AC,专门捡我不会的问我:
function foo(){
var a=b=5;
}
console.log(a); //ReferenceError: a is not defined
console.log(b); //5
function foo(){
"use strict;" //加上严格模式
var a=b=5;
}
console.log(a); //ReferenceError: a is not defined
console.log(b); //ReferenceError: b is not defined
因为以下代码
var a = b =5;
//等价于
var a;
b = 5;
a = b;
在非严格模式中,未声明变量默认为全局变量,可以在全局环境中通过this访问。
严格模式取消了默认this全局变量,因此在函数foo外访问会报错。
详见详解严格模式
4.18号,收到通知去神旺大酒店进行二面。
额。。。。总监面持续了一个多小时,其实中间问了我蛮多东西的。
只是……总监大人真的好帅啊~~~又好有风度。
所以…他问我的很多东西,我事后都回想不起来了。捂脸TAT
总监面完之后等了大概3,4个小时,就开始HR面。
HR小姐姐是个很可爱的萌妹子,一进门就叫我小名(把姓去掉的那种)
特别愉快的聊了一会儿,内容嘛你们都知道的,HR聊的东西都差不多。
然后就滚回去等消息了。
从4.18到4.28等了整整十天,期间各种煎熬。
为了缓解等待的焦虑,特别忧心的去面了IBM,房多多,美团,DaoCloud。
期间收割IBM和DaoCloud的offer,可是一直对腾讯念念不忘,身在曹营心在汉。
终于………在4.28上午拿到了腾讯的offer了,开心ing