关于自己:7、8月份疯狂投简历,9月初看到各种大佬拿各种大厂offer,各种羡慕。然而菜鸡的自己目前还是只收获了惨淡的一堆笔试,想把这次秋招的经历记录下来,也好给后来人参考(秋招说不定挂了还得继续春招 qwq)八月份的只做了三家的笔试:网易、头条、拼多多,当时在实习+根本没有复习+其实就是菜,三家都挂了,不说也罢,下面记录现在九月份的一些笔试面试经验
9.6 多益网络
多益网络的笔试是在他们自家的战盟上做的,体验还不错,笔试内容也很良心,非常前端(又想到头条的所有研发岗都是五道算法题emmmm)。笔试包括10单选,5填空,6简答,1编程,90min
@单选
js(数组的哪些方法不返回新数组、函数f.prototype === Object.getPrototypeOf(f)、)、tcp协议报文头、css、css3新特性性等
有一题印象特别深刻: 3.toString() 3..toString() 3...toString() 的输出结果是什么
当时思考了好久,然而考试结束之后在chrome的控制台上输出发现选错了qwq,三个都是error,数字如果想要使用toString()方法,必须加(),比如 (3).toString() 输出 "3"
@填空
css3过渡动画使用哪个属性
五大浏览器内核
给String添加一个原型方法,输入字符串“ hello world” 输出“h e l l o w o r l d”
jQuery如何主动触发节点点击事件
@简答
第一题是英文翻译。。。。
如何防范xss攻击(服务器端 cookie加密,设置secure、浏览器端 输入输出检查,防止html注入等)
BFC(块级元素上下文)布局触发条件
隐藏内容的几种方法
map、forEach、reduce的区别
最后一个应该是对js私有属性、方法的考察
@编程:最大连续子序列和
结果:感觉做的还挺好的,结果笔试挂
9.6 中兴zte
投错岗位了…投的技术支持工程师,没想到此技术非彼技术,考的都是概率论、数字信号、模电还有一小部分计网…做的生不如死,提前交卷了
结果:接到面试通知,鸽了
9.7 科大讯飞
讯飞的笔试还是研发大类一起考试,只有java和c++两个方向,90min,选的java,选择20+编程2,两道编程题其实感觉不难,但是算法是真的硬伤qwqq,感觉凉凉
@选择
操作系统(分时系统8个交互式终端,80ms一次i/o请求,求时间片大小)
软件测试(基本边界值分析法(n个变量,测试用例有4n^2 + 1)、单元测试内容)
数据结构(快排、二叉排序树(删除某个节点,问另一个节点的右孩子)、无向图的广度优先遍历)
java(字符串操作方法(concat\substring\startWith)、枚举类型、静态方法不可重载不可重写,私有方法可重载不可重写、set不能有重复值、stringBuffer的length与capacity方法)
计算机网络(tcp)
不得不感叹,牵扯到前端的内容是真的少……
@编程
第一道是改分数
老师有n个学生,得分是一个数组,如果希望他们的平均分达到x,至少修改多少个人的分数
第二道杀手根本没来得及看……
总结:自己太菜,其实第一题蛮简单的,但是写着写着觉得java操作数组太麻烦了,想改成js写,js写着写着觉得平台提供的输入输出方法不好用,还是改用java,然后……然后就没有然后了,只ac了18%……
后来接到了校招面试的邀请还是蛮惊讶的,本来觉得做的稀碎,没想到没捞起来了
@面试
一面:
1.自我介绍(会根据你自我介绍的内容提问)
2.关于成绩,貌似还蛮看重成绩的
3.在学校里都学了哪些课?你觉得学的最好的是?(根据你的回答提问);你提到的计算机网络里的OSI模型有几层?;http和tcp各位于什么层?(应用层、运输层);你觉得学的这些东西有用吗?举个具体例子?
4.为什么会想做前端?
5.如何学习前端知识的?
6.既然说了学习了html、css、js,按顺序来问,html学习了些什么,简单介绍一下?(html5)像
7.css怎么写一个气泡框出来?(主要是想问三角形,博客中有介绍);ul的第二个li设置样式?(ul:nth-child(2));如何设置水平居中、垂直居中?盒子模型和ie盒子模型的区别?(content-box和border-box);ie6和ie9的盒子模型区别?;谷歌、ie、火狐的盒子模型谁的最标准?(面试官告诉我是火狐的最标准,ie最不标准)
8.js原型链;异步和同步的区别?ajax请求过程?vue相比jquery怎么样?js基本数据类型?let和var的区别;作用域链;es6学了哪些?合并数组的方法?操作数组的方法?
9.还有什么想问我的吗?(1.公司使用的框架?[大多数vue];2.有移动端吗?)
二面:
1.自我介绍
2.项目介绍
4.在学校里没有接触过前端,是如何学习的?
5.看过哪些书?
6.js是一种弱类型语言,体现在哪里?(和java相比,定义变量的时候不用明显定义数据类型);这是定义方面的,还有其他的吗?(根据自己的理解说了一些,也不知道对不对)
7.js是一种面向对象的语言吗?它是如何体现面向对象的编程思想的?
8.前端优化方案;能举个例子吗?
9.js数据类型是如何存储的?(基本类型存在栈、引用类型存在堆)
10.js原型链
11.let和var的区别
12.未来计划如何发展?
13.其他的一些问题,比如期望工作地点,期望薪资,如果地点不在武汉介意吗,家不在武汉介意和家人隔这么远吗,有没有考研打算,有没有其他offer,喜欢前端吗等等等
总结:出来等几分钟,hr小姐姐过来说面试没太大问题,回去等通知。整体体验较好,在他们公司里面的,场地很宽,透露出一股有钱的气息。。面试官面试的时候不是纯聊技术,还会聊一些别的,比如让你介绍一些自己的情况,感觉整体比较放松,问题也都偏基础,没有特别刁钻的。offer。
9.8 招银网络科技
招商银行笔试挺新颖的……主观题30选择50min(必须在50min内做完),客观题六选一(不同方向的客观题不同)2简答1编程70min,测评100题不计时,主观题客观题剩余时间不累计到下一阶段,最坑的地方!点了下一题之后就没办法回去检查了!这是最坑的!这样意味着就算做完题想回去把没把握的题再仔细看看都不行,令人窒息
@主观
计算机网络(划分子网(B类ip划分7个子网,求子网掩码)、tcp(超时重传时间、请求与回复、收到错误的数据包的处理方法等))
高数(三元不等式组,求一不等式最大取值、切钢筋的最大利润、排列组合(跳台阶,一次可跳1、2、3……n步,求跳上第九级台阶有多少种跳法))
数据结构(树(前序遍历)、图(深度优先遍历)、循环链表、快排、折半排序最大比较次数)
软件工程(设计模式(可扩展性、适配器模式、装饰器模式等)、软件开发流程、还有一个用来判断开发耗时的图忘了叫什么(没学过),求它的主要逻辑)
操作系统(段式存储、进程三态模型)
逻辑判断(几个人里只有一个说真话的,问哪个选项是对的、类似于离散求非的一些判断)
数据库(GROUP BY、排它锁、关系型数据库的优点、还有一些基本语句)
java(多态、子类重载父类方法)
C++(程序引用步长)
总体来说,考的范围非常广…不得不说也都是一些非常重要的内容
@客观
简答1(css3实现元素的2s内上下匀速移动30px,还要兼容webkit浏览器,给了元素的宽、高、背景色,用的transition和:hover,不知道是不是满足题意的……)
简答2(js柯里化实现,题目给了两个条件,给Function添加方法使其实现柯里化调用、延迟调用,没怎么读懂题意)
编程(js构造函数、数组去重、数组排序,相当良心的编程题)
结果:笔试挂
9.8 网易杭研
单选20,编程3,简答2,120min
@单选
vue(vue源码使用的类型检查工具flow)
js(闭包、this、object.freeze()与const定义的对象都不可修改已有属性、正则表达式)
数据结构(树(前中后序遍历)、链表(插入步骤))
css(display:none隐藏元素同时也不占据物理空间、css3伪类选择器(参考这里)、最简洁的css表达式写法(这个蛮谜的))
计算机网络(iso模型各层的应用(数据链路层(网桥)、网络层(路由器)、物理层(转换器))、tcp/ip协议)
@编程
编程1(送分题,一条坐标轴,小明一次可以走1,2,3,4或5步,求去他朋友家x处需要走的最少的次数)
编程2(一个只有b和w的字符串,从某处切开且两个子串翻转,重复多次,可以得到类似bwbwb或者wbwbwb这种最长的不重复子串的长度)
编程3(一条街,n个房子,k个住户,必须要搬家到相邻两边都有住户的房子,求满足条件的最坏和最好情况下的房子数)
@简答
简答1(一个js函数remainTime(time),传入毫秒数time,返回{day:xx, hour:xx, min:xx, sec:xx, ms:xx};一个js函数counter(100,function(time){}),在remainTime的基础上,做到每隔100ms刷新一次,题目提示setInterval的计时不准确,要每次清除计时)
简答2(用html,css,js做一个类似百度搜索框的推荐列表,如图,题目提供了获得关键词的列表的函数getSuggestList(word))
结果:笔试挂
9.8 海康威视
20单选,5多选,1问答,1编程,90min,内容非常前端,体验极佳
@单选
http(状态码500、304)
前端优化方案(减少http请求、减少dom操作等)
css(内联元素(不可设置宽、高),有哪些(b,span,img等)、选择器优先级(!important > 行内样式>ID选择器 > 类\伪类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性),position(absolute、static、relative))
js(parseInt('1234blue5')='1234',注释,基本数据类型,alert警告框)
@多选
dom常用操作方法(getElementById\replaceChild\removeChild\insertBefore)
前端存储方案(sessionStorage\cookie\localStorage区别)
tcp
@简答
对es6语法的考察(rest参数... ,Array.map(function(){}))
@编程
输入n,输出
1
1 2 1
1 2 3 2 1
1 2 3 ... n n-1 n-2 ... 1
@面试:
一面:
1、flex布局
2、实现三列布局,左右两列定宽,中间自适应
3、前端路由原理
其余全程在聊项目
二面:(hr面,问的问题比较直接)
1、你觉得本科生和研究生相比优势在哪里?
2、你觉得你的优点是?
3、你是怎么学习前端的?
4、你的代码量是多少?
5、你还学过photoshop?你觉得设计和前端开发是一回事吗?
6、你这个简历为什么把项目放在最下面这样排版?
7、查户口
结果:面完hr让回去等通知,一到两周内有结果,但是感觉二面表现比较差,做好了凉的准备。后来收到了offer。
9.9 字节跳动
无限笔试的字节跳动……本来以为交了两次白卷之后这次也会是白卷,没想到这次的五道算法题放水放的厉害,我不仅能看懂题,甚至还ac了一道
编程1(求最长连续不重复子串长)
编程2(判断一个字符串是否是utf-8编码)
编程3(一个ip地址,漏掉了‘.’,例如8.8.8.8,现在是8888,给一个这样的字符串,求能还原出多少种ip)
编程4(用户之间的关注关系假设传递,a关注b,b关注c,则认为a间接关注c,如果某个用户的关注超过m,可以认为是红人,给出一组人的关注关系和m,求红人数量)
编程5记不得了
总之这次的算法题比较良心(可能前几次笔试刷人刷的厉害,没招够人),输出要求也比较低,五道题都是输出一个数字,做不出来也可以直接console.log("1")去骗测试用例(当然真正的大佬都是直接ac)
结果:凉了,因为收到了第四次笔试的通知
9.9 京东
30选择,2编程,120min,时间很充裕
@选择(单选多选混合,差点把多选也做成单选)
正则表达式(考了两题还是三题,看来京东很喜欢正则)
数据结构(堆排序(小顶堆)、简单选择排序(每一趟排序会有一个元素落在最终位置),)
html(canvas、svg区别(canvas依赖像素,一旦渲染完成不再受到浏览器关注,除非需要重新渲染;svg不依赖像素,可以通过事件操纵),(加""))
css(margin四合一写法(顺时针),display:-webkit-box用法,flex布局,float使块级元素在同一行)
dom与虚拟dom的区别(虚拟dom并不是真实的dom节点,是一种js对象的模拟实现,是当前MVVM框架的实现方式之一(比如vue和react),使用diff算法对比真实dom树之后刷新不同的地方,具体参考这里)
‘UP!UP!JD’的子串数量
计算机网络(tcp拥塞控制(慢开始与拥塞控制、快重传与快恢复)、http(状态码403(服务器禁止访问)))
@编程
编程1(无序数组的中位数)
编程2(主要是考察图,模型是n个点的连通图至少有n-1条边,求两个端点都不重合的连通子图的路径长度(每条边长1)的乘积)
结果:笔试挂
9.10 电信研发中心
90min,15单选,5多选,3问答,无编程
@单选
js(表单提交onSubmit,undefined与null区别(undefinded从null衍生出来,undefined == null 但undefined !== null),typeof与instanceif区别(typeof用于判断基本数据类型+object,返回值是一串小写字符,instanceof用于判断对象类型,就是判断某个对象是Array还是Function还是其他的对象类型))
数据库(数据库设计、逻辑结构与物理结构)
操作系统(何时需要进行进程调度)
线性数据结构(线性表、数组、栈、队列等)
正则表达式
前端存储方案(sessionStorage、localStorage、cookie区别)
@多选
ajax优缺点(页面无刷新,不会打断用户操作,优化用户体验、减少服务器负担节约成本;有安全隐患、破坏了浏览器后退机制、对搜索引擎弱支持、依赖js,具体参考这里)
引入外部css方法(或,参考这里)
http(有关缓存的请求头:last-modified,expire,cache-control,prama)
css(border属性)
@问答
问答1(实现一个EventEmit类,参考这里)
问答2(计算阶乘的两种方式(应该是递归、非递归))
问答3(js实现二分查找,不存在返回-1,多次存在返回第一次出现的位置)
笔试通过,一面挂
@面试
1.inode文件系统(完全没听过)
2.临界区
3.进程间通信方式
4.http协议是应用层协议,在传输层的应用?
5.http协议是一种无状态协议,如何做到状态保持?(后来查了一下发现应该是要考浏览器存储方案,第一次见这种问法)
6.简历上写的用过node.js和git,来讲一讲node,如何publish一个包(第一次遇到问这个的)
7.用过vue,vue如何取消某个属性的双向绑定
8.想问jquery的.ready,我说没怎么用过jquery,就问除了window.onload还有其他监听到文档加载完成的方法吗(后来查了应是DOMContentLoaded,相当于他问的那个.ready)
9.清除cookie的方法
10.往一个div里添加十万个节点的方法(document.createDocumentFragment(),它不属于文档树,比较实用的地方是请求插入documentFragment时,插入的不是它自身而是它的子孙节点,当有大量节点需要插入,可以先把它们插入到documentFragment里,再把documentFragment插入到dom中,减少了dom的渲染操作,参考这里和这里)
总结:体验很差。面试内容和笔试内容完全无关,两个面试官,一个根据成绩单问,另一个根据简历问前端知识;其次四点半到的,到六点多才面上,几乎是最后一个;问的内容高度确实蛮高的,和自己完全不在一个点上;面试官给人的感觉也很差,答不上来的时候面试官就笑,也不知道是不是嘲讽,一脸看好戏的样子,最后应该是感觉我太菜了,问题都没问完就让走了
9.10 cvte
25选择,2编程,90min,内容非常前端,感觉比较难qwq
@选择(单选+多选)
dom(事件捕获模型(true捕获,false冒泡,默认冒泡,同名按顺序执行)、dom操作是同步的)
js(闭包、异步执行队列、setInterval与setTImeout、symbol、emitter.once(只执行一次)、new创建对象、let(块级变量)、const(一旦声明不可改变不可重复)、this(注意看是谁调用的))
数据结构(队列、树的前中后序遍历、三阶b-树(模型类似于完全二叉树)、有向图(邻接表的优点、删除某个点链接的所有弧的时间复杂度O(m+n)m个点n条弧)、二维数组)
css(flex布局垂直居中(align-items:center)、应放在里)
cookie的路径问题(子路径可以访问父路径cookie,父不可访问子路径cookie)
@编程
编程1(贪吃蛇吃蛋,给一个map数组,数组每个元素都是等长的子数组,表示了蛋的位置,输出一个对象数组,格式如[{step:n , x: 0 , y: 4}],其中step表示蛇的长度(每走一步长度+1),x、y表示蛇的位置),大致如下:
let map = [
[0,0,7,8,9],
[0,5,6,0,10],
[0,4,13,12,11],
[2,3,14,15,0],
[1,0,0,16,0]
],蛇每次起始点都是map数组的左下角1的位置,也就是{step:1, x:0, y:4},大意是按照这个数组建立一个二维坐标系表示蛇的位置,数组里的数组表示蛇走的路径1->2->3->4这样
编程2(实现一个next函数,功能大概是 字符串str+1的这种感觉,如果是数字结尾就正常加减,字母结尾按ascii码+1,特殊的地方是z+1会进1,类似于999+1会变成1000,zzz+1会变成 1aaa ,字母前面是数字也要继续往前+1),如下:
next(999zzz) == 1000aaa
next(adv199) == adv200
@面试:
一面:
1、js基本数据类型
2、事件委托机制
3、盒子模型,标准和ie的区别,怎么转换
4、原型链
5、flex布局,常用的一些属性
6、es6
7、闭包,闭包的坏处(内存泄漏,当时忘掉了)
8、http1.0和2.0的区别
9、http和https区别,https加密原理(让画非对称加密过程,不会画……后来感觉他是想问TLS/SSL加密)
10、模块化的原理(根据依赖关系构建树,根据树加载),webpack接触过吗?(接触的不多,就说了配置--host和--hot)
11、node.js使用过吗?(没有……感觉从这里开始面试官对我的印象直线下降)
12、讲一些在项目中遇到的困难(讲了几个,面试官说这都是比较基础的问题emmm)
13、现场写几个代码
第一个,实现输入防抖,输入之后延迟2s才开始自动搜索(没写出来)
第二个,实现一个计算器的构造函数(写了几分钟,面试官等的可能着急了,催我结束,然后最后忘了修正this指向。。。)
结果:凉透了,挂了
9.11 人人网
30选择+2编程,120min,感觉比较难,前端的部分考的不深,不是前端的部分考的贼98难
@选择
计算机网络(物理层中继器、端口21(ftp))
数据库(group by...having ....,count)
数据结构(哈夫曼树、散列表链地址法解决冲突、无向图的深度优先遍历、采用链表的情况)
css(background-position、ie盒子模型与w3c的差别)
js(blob对象、数组)
html(dl、ul、datalist、datagrid)
@编程
编程1(送分题,求某年某月的天数)
编程2(在大海中,.表示海,#表示礁石,@表示人所在的位置,给一个n行m列的输入,求人能到达的海的面积,礁石不可越过,礁石组成的死角也无法进入。没做出来。)
结果:笔试挂
9.11 百度
百度笔试的内容忘掉了,因为当时觉得做的稀碎,没心情写博客,但是后来竟然接到了面试,觉得还是补一下大致内容
选择题记不得了;
简答题里有让写一个轮播图,翻到最后一页可以翻回第一页,可以拖动,可以自动播放;
编程题有两题,第一个是写一个百度搜索的建议框,类似于网易考的那个,有另外的要求比如没有匹配的字条就隐藏建议框,输入的关键词搜索时要去掉行首和末尾的换行等。
面试:(发在牛客网的一条回帖里,再次整理了一下)
1.简单介绍一下项目(用的vue)
2.使用vue相比原生dom的好处是
3.vue虚拟dom(其实面试官当时模拟了一个场景,但是本人表达能力有限。。。主要是考虚拟dom和真实dom树)
4.看过哪些书,了解es6吗,es6内容
5.proxy应用场景
6.promise的一个代码题,对异步(settimeout),resolve,reject的考察
7.组件写过吗?组件的好处是什么?
8.笔试里的轮播图如果写成组件,该复用哪些属性(这一部分应该比较重要,看你思路是不是开阔,之后关于这部分面试官也讲了很多,比如图片是否可以自动播放、播放是正序还是逆序、图片下面那个表示播放顺序的点是不是出现,甚至前一张后一张的箭头是否要出现,图片播放的时候是上下播放还是左右播放,是渐隐还是直接换图等等,面试官还说可以去淘宝京东阿里这些网站去观察一下他们是怎么做的,感觉非常厉害)
9.数据结构学的怎么样?有哪些比较常用的数据结构?
10.数组去重(set),还有吗?还有吗?还有吗?(map,因为map的key是不可重复的,把元素放进key里,value可以随便复制,后面重复的元素会被覆盖掉)
11.字符串逆序,如果不用reverse呢?(栈)
12.css如何写出一个三角形,除了用border呢?(面试官说的是一种在div边缘的三角形,类似下面这样,通过旋转,调整与父级div的距离,再把溢出的部分hidden掉)
13.position三种定位,absolute和fixed区别?
14.还是position,具体考absolute,static,relative的区别
15.jquery的load和ready触发时机有区别吗?如果一个网页,其他都加载完毕,但是有个长图片只出来一部分,文档算是加载完毕了吗?(并没有,具体参考这里)
16.ajax请求过程,可以同步吗(async=false)?
17.盒子模型,ie盒子模型有不同吗?如何解决这种差别?(box-sizing)
18.有什么问题要问我吗?(1.面试官是百度哪个项目组的?[凤巢,后来跟我详细的介绍了一下,还介绍了他们用的一些技术] 2.感觉自己答的比较不好,有哪些地方该提高一下?)
总结:体验很好。百度的面试官很nice,你说什么他都知道,回答的时候会引导你,也会帮你纠正错误,跟你特别仔细的讲解。面试如果通过是很好的,不通过也是一次很好的学习机会,点赞
9.12 4399
单选15,问答3,编程3,主观论述4,120min
@单选
前端模块化工具(cmd、umd、commonJS)
html5新标签、html块级元素
BFC(形成条件)
webpack
ajax(datatype:json/jsonp/script/text/xml/html)
document.ready和window.onload触发时机一致
@问答
问答1(一段表单的html,求问有哪些不足之处)
问答2(浏览器渲染关键路径、