杭州有赞
一面(16分钟)
- 实习经历,技术栈
- let,const
- 盒子模型
- 跨域,cors简单请求和非简单请求
二面
- 快排
- url的解析
- vue父子通信,双向绑定
- webpack考察,输出到同一个文件
- vue和jquery的比较……
- 性能优化
隔了很久三面
聊骚
hr面,貌似挂了
便利蜂一面过
- 跨域后callback的访问(也就是个作用域问题)
- 盒子模型和box-sizing
- 正则表达式,trim
- 事件的绑定
- https(中间的公钥私钥)
- this作用域
- 串行bind是否有作用。妈蛋没回答起
- 对象的检测(除开null)
- 数组的多种方法
- 单页应用原理(pushstate和hashchange)
- ajax源码,传输数据的格式(表单格式和json格式)
- http的请求报文格式
cvte
一面
- 针对项目考查vue-router和vuex原理
- let和const,讲解下暂死性死区
- 讲解下原型
- 说一下闭包
- 快排的原理
- bfc
二面
面到晚上10点50分钟,挂
- 写一个diff({name: ‘aa’}, {name: ‘bb’})类似的算法,一个递归写了20分钟
- vue的优点
- service worker
- 最近了解什么新技术
- position
- http缓存,if-modified-since和if-none-match的优先级
ofo
一面(40分钟)
等通知中
- 自我介绍
- vuex状态管理的方式,全局与局部状态以及怎么获取
- vue和react的区别
- 盒子模型
- 定位
- 浮动
- bfc
- 垂直水平居中
es6了解多少
console.log(1); new Promise(function(resolve, reject) { console.log(2); reject(false); setTimeout(function() { console.log(3); resolve(true) },0) }).then(function() { console.log(4); },function() { console.log(5); }) console.log(6)
less和sass用过吗?
- 写过node吗?没有,了解过
- 学过npm包吗?没有
- 说一说webpack配置,loader具体
- 特长爱好,与人怎样沟通
二面
- 了解在公司实习学到的东西,很具体的说了一下
- 然后基本没问什么东西
结果给了sp很诧异
京东一面(30分钟,卒)
- 说说实习,技术栈
- 用flex实习三栏布局
- 模块化规范,seajs打包的时候什么什么的具体忘了,反正没回答起
- vue组件复用
- cdn缓存了解吗?公司有用cdn吗?不知道。。。
- 浏览器缓存
- ajax整个过程
- vue父子组件通信
饿了么大前端
一面
9.18 10:30。比我先去的面试者站着坑让我等了30分钟, 进去有实习经历呀?我们加快点速度吧。。感觉有点水。
- apply/call/bind用法,bind链式有用吗,apply传对象报错吗
- 判断对象
- 哪些类型有toString方法
- arguments转换成数组
- 类数组
- 往body里插入节点
- 写个算法,求数组元素连续乘积最大值
- http结构
- http缓存
- 学信息安全呀,说说https
二面
面试官看了我的github,我的代码那些都看了。问了几个相关问题,给了点建议,感觉面试官算法挺强的
三面
- 原型链
- 关于function
new function() {
return 'aaaaa'
}
//得到的实例是什么
- 跨域
- css module原理
后面的忘记了,估计挂了
好未来
一面
- 手写圣杯布局
- 关于bfc及形成条件,并出一道题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
html, body{
height: 100%;
width: 100%;
}
.left{
float: left;
width: 100px;
height: 400px;
}
.right{
overflow: hidden;
}
.right::after{
display: block;
content: "";
clear: both;
}
li{
float: left;
width: 60px;
height: 60px;
}
</style>
</head>
<body>
<div class="parent">
<div class="left">
</div>
<ul class="right">
<li>12</li>
<li>12</li>
<li>12</li>
<li>12</li>
<li>12</li>
<li>12</li>
</ul>
</div>
</body>
</html>
问题:为什么right的高度也变成了400
- 手写promise的简单实现
- 手写bind的实现
- 实习公司使用的技术栈
- 聊了聊服务器端渲染
- 循环引用解决方案
二面
- 操作系统,进程,线程,协程。进程间的通信
- 如何不借助第三个变量交换两个变量的值。操作系统的堆栈和数据结构的堆栈区别
- 计算机网络,流量控制,拥塞避免
- https和http的区别及https的过程,rsa算法大概
- http缓存,验证过程。etag的生成,后端怎么取etag和怎么生成
- 介绍xss,及防范。及具体使用
- cookie中http only和secure属性
- 手写数组去重unique,考虑各种类型。
- 数组的判断方法
- 异步流程控制
- vue-router的原理,及history模式
- vue虚拟dom的原理
- vue的双向绑定机制
- webpack热更新原理
面试官加了我微信,聊了,申请sp本来想去的。。。
百度
一面
- 手写三栏布局,并要等高
- 解决兄弟元素margin-bottom和margin-top的折叠问题
- 写个深拷贝
- 实现以下函数从1打印到10,log只可以调用
let log = (callback) => {
log.count = log.count || 0;
log.count++
if(callback && typeof callback == 'function') {
setTimeout(() => {
console.log(log.count);
callback();
}, Math.random()*count*1000)
}
}
//这下想到的方案
function doIt() {
new Promise((resolve) => {
if(count !== 10) {
log(resolve);
}
}).then(() => {
doIt();
})
}
doIt();
- 用map实现reduce(不会)
- 对实习公司项目的剖析
- 原型链
- 关于继承
二面
- 垂直水平居中
- 异步流程控制
- Promise.all
p 的状态是啥
var p = new Promise((resolve, reject) => { reject(); }).then(null, (err) => { })
- 了解sass和less吗?
- webpack的配置,写过plugin吗?loader的作用?install过哪些包
- 解释原型链
- 解释作用域
- 数组reduce怎么实现(不会)。
- margin和padding的区别。
- 从后端返回三个英文段,统计所有单词出现的次数。
- 模块引入机制
三面
- 自我介绍
- 手写,n长的数组,里面是不重复的从1到n+1的数,乱序。计算缺少哪个数。
先将arr排序,然后前后相减。 - 剖析个人心理及性格。感觉回答的不好。
!!!!!等了三周通知过了
网易
一面
- 根据简历上写的问,没写代码
- 解释bfc
- 说说圣杯布局
- 说一下公司实习学到了什么
- 讲一下你写的轮播,怎么封装,暴露哪些参数
- 写一个快排
二面
- 如果让你实现日期组件,你怎么实现,思路
- call和apply的区别
如果一个元素旋转45度,那他的y轴会变吗
意思就是旋转45度后,再设置top,这个试了是不会变的function isEqual(arg1, arg2) {//不能判断像new Boolean这种还有regexp还有date类型 var flag = true, _toString = Object.prototype.toString, len1 = Object.keys(arg1).length, len2 = Object.keys(arg2).length; if(arg1 === arg2) {//string, null, undefined, number return true; } if(_toString.call(arg1) !== _toString.call(arg2)) {//一个对象一个数组 return false; } if(len1 !== len2) { return false; } for(var key in arg1) { if(arg2.hasOwnProperty(key)) { flag = isEqual(arg1[key], arg2[key]); }else { return false; } } return flag }
页面间的通信
- slice和splice的区别
- 淘宝放大图怎么做
hr面
。。。。
头条
一面
- 说说bfc
- 清除浮动
- 实现三行布局
- http缓存
- 以下执行效果
var dat = new Date();
for(var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(Date.now() - dat, i)
}, 1000)
}
- 单点登录怎么做
- 字符串排版
要求,[‘this’, ‘is’, ‘my’, ‘favorite’, ‘food’],输出一个数组,包含的字符串最长为n,并且右对齐。如n为8,输出[’ this is’, ’ my’, ‘favorite’, ’ food’]; - 函数节流
二面
- 一个项目有很多页面, webpack怎么设
- setState异步吗
- 性能优化
- 函数节流
- 统计一个字符串中出现最多的字母
- rn的优势
- headless chrome和phantomJS的对比
- 一个list view,往下划dom节点越来越多,怎么优化