一面
- tcp 和 udp 的 区 别 和 使 用 场 景 ?
- quic 基 于 udp 怎 么 保 证 可 靠 性 ?
- 讲一下同源策略和跨域方案?CORS 的几个头部是什么?
- 讲 一 下 react fiber ?
- vue 双 向 绑 定 原 理 ?
- redux 和 mobx 的 区 别 和 使 用 场 景 ?
- ypeof null ? null instanceof Object ?
typeof 可 以 判 断 哪 些 类 型 ? instanceof 做 了 什 么 ?
string、
实 现 一 个 bind 函 数
- 求数组里面最大连续项的和
event loop
二面
怎 么 优 化 h5 的 加 载 速 度 ?
- 离线包怎么更新?怎么知道需要打开哪个离线包?
- js bridge 通 信 原 理 ?
怎 么 实 现 h5 页 面 秒 开 ?
明明不是同一个语言,为什么 js 和 native可以通信?
怎么实 现 j s br idge 跨 多 个 app 共 用?
grpc 相 比 ht tp 的 优 势
- rpc 的 调 用 流 程 ? 前 端 怎 么 调 用 grpc 的 ?
- 为 什 么 要 用 grpc ?
- 服 务 发 现 为 什 么 用 ip , 而 不 用 域 名 ?
- 怎么做 DNS 预解析?
- 怎么实现移动端的布局?
- iOS 下 软 键 盘 输 入 框 遮 挡 遇 到 过 问 题 么 ? 怎 么 解 决 顶 不 起 来的 问 题 ?
- 实现两个大数相加
- 求一个数组最大子项的和,要求这些子项在数组中的位置不是连 续 的
- 常 用 的 react hooks 方 法
- useState 怎 么 做 缓 存 的 ?
- 怎 么 解 决 useState 闭 包 的 问 题 ?
useReducer 比 redux 好 在 哪 里 ?
三面
做 过 哪 些 公 共 组 件 ? DatePicker 怎 么 实 现 的 ? 难 点 在 哪 里 ?
- 组件封装有哪些原则?
- 组件数据和 UI 怎么分离?
- 有没有做过一些提高工作效率的东西?
- 有没有了解过拖拽?觉得它有哪些难点?
- 有 没 有 做 过 优 化 相 关 的 ? webpack 做 了 哪 些 优 化 ?
- cache - loader 和 hard - source - webpack - plugin 的 区 别是 什 么 ?
- 最近遇到的比较难的项目是什么?你们服务是怎么部署的?
- Puppeteer 可 以 用 来 做 什 么 ?
实习
16期-RHF
工作地点:北京 工作性质:实习 部门:待定 一面:2020.08.28 二面:2020.09.03 三面:2020.09.07 hr面:2020.09.08
一面
- TCP的拥塞控制
- DNS
- http状态码
- 304 浏览器缓存
- vdom
- 填充字符串(编程)
- 管道函数(编程)
- 箭头函数和普通函数的区别
- 排序算法
- css中的position取值,及区别
- 盒模型 top:50%,margin-top:50%,相对什么计算的
- 怎么求的盒子的总尺寸
- clientWidth,offsetWidth,scrollWidth的区别
二面
- 自我介绍
- 为什么学前端
- 介绍最让我有收获的一个项目
- 介绍音乐播放器项目,音频加载不出来时的优化处理
- 事件循环方面的执行顺序出了一个题
- 产生一个不重复的随机数组
- continue和break的区别
- webpack中devserve
- 热更新
- 遍历一个目录,将文件中所有的标签改成<&b>
- 文件流steam
- git回退操作
- translate的优点
- 实现一个球
- 一个白板,实现画笔的功能
三面
- 自我介绍
- 对前端的认识,学习了哪些技术
- 你的这些项目都有用户吗
- h5新出的api
- css的标准化组织是?
- css3目前处在哪个阶段?
- jsonp原理,手写jsonp
- 图片的一些格式,以及它们的区别,和其中的算法
- 函数防抖和节流是怎样优化性能的
- 你还有什么问题想问我的吗
四面
- 对技术面的体验,哪些方面需要提升,自己做过哪些努力
- 你的高考情况,为什么选择现在这所学校
- vue框架的优点
- 是怎样学习前端的
- 做过哪些项目
- 项目上的提升,成就感的事
- 团队协作方面
- 有进行其它公司的面试吗
- 选择一个公司,你会考虑到哪些点
- 实习地点有要求吗
- 能实习多长时间
一面
- http 状态码有哪些
- 强制缓存和协商缓存的区别?有哪几种情况
- 强制缓存字段和协商缓存的字段有哪些?
- for…in和for…of区别?
- 什么是可迭代对象?
- webpack的使用和原理?
- loader和plugins的使用,有哪些loader和plugin?
- babel的AST构建树和webpack的AST的构建树有什么区别?
- 304 缓存机制
算法:
给一个无序的数组,用户输入数字,从数组中寻找两个数字等于用户输入的值,并把这两个数字在数组中的下标返回,放到一个新的数组
16期-SXL
工作地点:北京 工作性质:正式 部门:待定 一面:2020.09.29
一面
- 操作系统,网络原理,问的挺多,但感觉不常考 http也在其中考了
- js基本数据类型,得到类型的方法有哪些
- css的定位类型有哪些
- 结合题目完成反转链表
- 桶排序,快排
- 两道情景算法
XXX
工作地点:北京 工作性质:抖音 部门: 面试时间:
一面
- 说下你在实习做的项目
- 怎么发送请求的?
- 怎么做的身份校验?
- post请求分为哪几种?
- http、https区别?ssl过程?为什么不直接非对称加密?
- 读过vue源码吗?印象最深?(响应式,后面被问vDOM、v-diff拉垮、key是做啥的、什么case操作原生DOM比操作VDOM性能好)
- CSS哪些属性可以加速GPU?除了absolute、fixed呢?
- cookie。如果跨域如何解决?
- 了解服务端渲染吗
- 编码
{a:{b:{c:{f:"aa"}},d:{e:{g:"bb"},h:{i:"cc"}},j:{k:"dd"}}}[f,g,i,c,e,h,k,b,d,j,a]
18期-
工作地点:上海 工作性质:正式 部门:待定
一面
- 自我介绍
- position的属性
- 重绘重排,什么时候触发重排,transform会触发重排么?为什么?
display:none 和 visible:hidden 区别
一段异步代码的输出,setTimeout 和 promise的有关
问输出结果
console.log(typeof 1)
console.log(typeof [])
问怎么判断 是一个数组
- 一棵二叉树的两个节点的最短距离
node{
depth:number //当前树的层级
parent:node
left:node
right:node
}
代码实现:Q: 实现一个长按(500ms)事件, 触发长按时不触发点击
function addLongPressListener(target, handler) {
// TODO
}
- 你有什么想问的?
二面
- 都没有自我介绍,直接开始
- 问项目,单点登录怎么实现,权限系统的表现,权限系统的架构是什么样的
- get和post区别
你还了解什么请求? get put post delete options
put 和 post 有什么区别
你了解 options请求么?跨域有关等等
进程和线程
问一段代码输出
var a = (x) => xvar b = (x) => {x}var c = (x) => ({x})console.log(a(1),b(1),c(1))
new关键字的作用?怎么样链接原型
- webpack loader和plugin的区别,什么时候调用等。你自己写过loader和plugin么?
- vue源码 问的很细 什么时候绑定dep 什么时候通知watcher 什么时候绑定watcher等
- vue3.0的理解
- vue-router源码
- 代码实现数组去重,问了时间复杂度多少
代码实现一个任务队列
实现一个任务队列支持添加任务,启动任务队列,停止任务队列,按顺序执行任务任务都是函数,支持异步函数,支持设置每个任务的执行等待时间class TaskQueue{add(fn:Function,time:number):TaskQueue}// 调用示例:const task = new TaskQueue();task.start();task.add(()=>console.log(1),0);task.add(()=>console.log(2),1000);task.add(()=>console.log(3),2000);task.stop();输出:1// 等待1000ms2// 等待2000ms3
你怎么学习前端技术?
- 你现在会的技术栈?
- 你有什么想问的?
三面leader面
- 自我介绍,问了演讲都演讲的什么内容,社团技术公开课每次都要准备多长时间
- flex:1 表示什么?详细说下,详细问了 flex-baisit
- https有什么好处?原理?
- 如果dns解析给了你一个假的ip,https如何处理的?
- https使用什么算法 ?
- 写个程序:有关promise回调的,实现封装fn方法,成功时推向fullied,失败推向rejected。(
function promisefy(fn){}
function fn(callback){
//两种情况,成功或失败
callback(null,(res)=>{//成功})
callback(err=>{//失败},(res)=>{//成功})
}
p = promisefy(fn)
- 代码题2:参数是两个dom节点,找二者最近的祖先
function sameParent(a,b){}
- 代码题3:用栈来模拟队列,并完成min方法,时间复杂度O(1),假设只有数字
class Queue{}
q.min() //获取队列中最小的元素
- 你的优缺点?
- 最后有什么想问的?
三面加面
- 介绍一下你的项目
- vue将内容渲染到页面上的全过程?
- 如果改变data中某个值,页面怎么发生变化?
- 修改值以后页面怎么进行监听的,怎么重新渲染?observer数据劫持通知dep.notify进行页面渲染 ==》其中虚拟dom—》diff算法
- diff算法,如何比较? 如果发现了变化是否继续向下比较?
- .vue文件中三个部分如何编译成js文件的?没了解过,面试官引导,在js是怎么创建vue,定义vue组件的?blabla…
- 你推测一下.vue是如何编译的?
- vue中style如何编译? 不知道,我说webpack中有一个插件会把 选择器转换成 一个不重复的字符串类名…,面试官:差不多
- 编程题:保证tasks列表必须顺序调用,不允许使用async和await
let p1 = p0.then(succ, fail)
tasks = [task1, task2, …taskN];
function seq(tasks) {
}
一开始没写出来,面试官提示, promise.then()方法返回什么,里面的状态是怎么样的?
function seq(tasks){
var start = 0
var pro = Promise.resolve()
while(start
start ++
}
}
10.如果区分用户权限,我说了项目中使用的方法,维护一个权限表,面试官问可以,还有呢?
- 使用cookie,怎么使用?
- cookie和localStorage区别,其中说到了 expires 过期时间
- 说一下浏览器缓存?强缓存和协商缓存。
- 具体说一下通过什么来控制强缓存和协商缓存?
- 强缓存:cache-control 和 expires 这两个有什么区别?
- 协商缓存:etag和if-none-match 或 last-modified 和 if-modified-since 这两个有什么区别?
- 如果协商缓存没有过期,服务端会返回什么? —》304状态码
- 算法题:输入一个无重复的字符串,找出其全排列。面试官几乎给出了答案。
‘abc’ -> [‘abc’, ‘cba, ‘cab’, …]result = []result = result.concat(permutation(‘bc’).map(r => ‘a’ + r))permutation(‘ac’).map(r => ‘b’ + r)permutation(‘ab’).map(r => ‘c’ + r)
function permutation(str) {}
function permutation(str) {if(str.length == 0) return []var result = []for(var i=0;i<str.length;i++){var pre = str[i]var nex = ""for(var j=0;j<str.length;j++){if(i!=j)nex += str[j]}result = result.concat(permutation(nex).map(r=>pre + r))}return result}
面试官有事,写完算法说了声就结束了。
五面leader
- 自我介绍
- 问项目,项目的亮点,项目中比较困难的地方,sso单点登录(扯了好久好久),项目人数,周期
- 代码题 ```javascript 有一个函数,接收3个参数:
- asyncAdd 没有返回值
- callback 没有返回值
function asyncAdd(a, b, callback) {
}
asyncAdd(1, 2, function (err, result) {
if (err) throw err;
console.log(result); // 3;
});
— 题目
有一个数列:[1, 2, 3, 4, …, N];
基于 asyncAdd 完成数列的求和运算。
例如:
function sum(list) {
// TODO
}
sum([1, 2, 3, 4]).then(v => console.log(v)); // 10
javascript function sum(list){ return new Promise((resolve,reject)=>{
})var res = list.reduce((a,b)=>asyncAdd(a,b,(err,result)=>{if(err) throw errreturn result}),0)resolve(res)
}
给了一个类似轮播图,实现下结构和样式。```html<div class="wrapper"><div class="content"><div class="box"> <img src=""><div class="shadow"></div> <div class="text"><h1>标题</h1><p>内容</p></div> </div><div class="box"> <img src=""> <div class="shadow"></div><div class="text"><h1>标题</h1><p>内容</p></div></div><div class="box"> <img src=""> <div class="shadow"></div><div class="text"><h1>标题</h1><p>内容</p></div></div></div><div class="left"></div><div class="right"></div><div class="dotted"><span><span><span><span><span><span></div></div><style>.wrapper{position:relative;width:700px;height:500pxbackground-image:url();background-reapeat:no-reapeat;background-size:100% 100%;padding:20px 50px;}.wrapper .content{width:600px;height:200px;}.wrapper .box{width:100px;heihgt:200pxfloat:left;margin:20px 10px;}.box img{width:100%;height:100px;}.text{width:100%;height:100px;}.left{width:30px;height:80px;position:absolute;left:50px;top:50%;margin-top:-40px;}.right{width:30px;height:80px;position:absolute;right:50px;top:50%;margin-top:-40px;}.dotted{position:absolute;bottom:10pxheight:20px;text-align:center}.dotted span{display:inline-block;width:20px;heihgt:20px;border-radius:50%;margin:0 20px;}</style>
8期-
- 你项目使用到了Antd Design,请问它是如何按需加载的?
- 项目中的图片如何上传
- 保存图片的格式?
- Antd Design新版本是如何自动支持按需加载的呢?
- 写过webpack插件没?
- 你项目中的登录功能是怎么做的?
- 说一下重绘和重排
- 安全相关:XSS,CSRF
- cookie、session、token
- 处理异步的方式
- 事件循环
- css左右两栏固定,中间自适应布局怎么做?
- 还有些不记得了。。
代码题1:
async function async1() {console.log('async1 start')await async2()console.log('async1 end')}async function async2() {console.log('async2')}console.log('script start')setTimeout(function () {console.log('setTimeout')}, 0)async1()new Promise(function (resolve) {console.log('promise1')resolve()}).then(function () {console.log('promise2')})console.log('script end')
代码题2:
实现promise.all。
代码题3:
给一个0 1 矩阵,求不同的岛屿的个数
0表示海,1表示岛,如果两个1相邻,那么这两个1属于同一个岛,我们只考虑上下左右为相邻
例如在矩阵:
[
[1, 1, 0, 0, 0],
[0, 1, 0, 0, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 1, 0],
[0, 0 , 0, 0, 1],
]
总共有3个海岛
https://blog.nowcoder.net/n/440f7acb900e4792a57c1fa2a7fbbd1d[待整理]
社招
8期-ZY
背景
20届毕业生,7月毕业入职三个多月,因公司整体出现大的变动导致不得不重新找工作,期间面了禾连健康、阿里的政务部门、字节等;阿里二面因为工作经验太短被刷,禾连开16k涨幅不多就拒了,最终选择字节。
字节整体面试体验感觉很好,3轮技术+1轮HR,全程视频面,整个面试流程大概一周多一点。全程都有一个HR跟进,会帮你提前预约面试时间,每轮面试后基本10分钟内HR会跟你反馈结果。(在面阿里的时候都是面试官突然打电话就要面试,并且一面二面相隔一周,如果不是问了内推的同学我还以为挂了)
原计划毕业工作两年后再面大厂,但是公司突遭变故不得不提前(拥抱变化)。本文主要记录了一些最近面试中经常被问到的问题,包括但不限于字节,真实面试中的问题比下面要多,但整体差不多,主要根据你的简历和项目来问;
作者:mytheart
链接:https://juejin.cn/post/6888689009854251021
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一面
- 小程序的实现原理
- uni-app是怎么实现跨端的,uni-app代码转成小程序代码的原理
- 还有哪些跨端方案?uni-app 和 taro的区别
- 介绍下Redux中的reducer
- React和Vue的区别
- React的生命周期和官方为什么要改它的生命周期
- Redux的原理
- Redux和dva的区别
- connect是怎么实现的
- React Hooks用过吗,它解决了什么问题
- Hooks为什么不能在循环和判断中使用,Hooks是怎么实现的
- React项目中怎么优化
- PureComponent为什么可以进行浅比较,shouldComponentUpdate是怎么进行浅比较的
- 父组件渲染子组件是否会渲染,类组件有PureComponent,函数组件怎么实现父组件渲染子组件不渲染
- React Hook有什么问题,Vue3中是怎么解决这些问题的
- 为什么要用ts,接口是什么,泛型是什么
- 路由有哪几种,是怎么实现的(3种)
- section是用来做什么的
- 了解SSO吗
- Webpack打包原理
- 使用Webapck做过哪些优化
- Webpack中主要有哪些配置
- loader是什么,plugin是什么,写过loader和plugin吗,二者的区别
- ES6的迭代器是怎么实现的
- 怎么实现继承
- Javascript的数据类型(8种)
- 说说z-index有什么需要注意的地方,z-index: 0 和z-index:1的区别,z-index为0和1哪个元素在上面
- 什么是重绘和重排
- 服务端渲染的方案有哪些?next.js和nuxt.js的区别
- cdn的原理
- JSBridge的原理
- 一道关于Promise微任务 宏任务打印顺序的问题
- 请为所有数组对象添加一个findDuplicate,用于返回该数组中出现频率>=n的元素列表
Array.prototype.findDup = function (count) {return this.reduce((re, val) => {let index = re.findIndex(o => o.val === val)if (index >= 0) {re[index].count++} else {re.push({ count: 1, val })}return re}, []).filter(o => o.count >= count).map(o => o.val)}复制代码
二面
- 项目中有做过哪些性能优化(最好从构建性能、传输性能、运行性能三个方面来说)
- React diff算法是怎么实现的,传递diff算法的算法复杂度是多少
- React Fiber是什么,是怎么实现的
- 你们项目是怎么发布的
- 你们的项目怎么进行分支管理的
- 一个大型项目多人协作你们是怎么保证代码质量的
- 你在项目中遇到哪些问题,是怎么解决这些问题的,这个项目参与人数多少,你负责哪部分内容
- 设计一个搜索组件,要考虑到所有边界情况 怎么进行优化;
如果…,你该…做;
怎么再进行优化;
再优化;
更极致的优化(某种非常非常特殊的场景) - 如果一个后台管理系统中有很多表格,你会怎么做(Hooks逻辑拆分 / 封装业务组件)
实现一个批量请求函数multiRequest(urls,maxNum),最大并发数maxNum。 每当有一个请求返回,就留下一个空位,可以增加新的请求。所有请求完成后,结果按照urls里面的顺序依次打出
const reqest = (url) => {return new Promise((resolve, reject) => {console.log('请求了')setTimeout(()=>{resolve(url)},1000)})}const multiRequest = (urls, maxNum) => {let i = 0;const ret = []; // 完成集合const executing = [];// 执行集合const enqueue = () => {if (urls.length === i) { // 判断是否全部执行完return Promise.resolve();}const p = Promise.resolve().then(() => reqest(urls[i++]));const e = p.then(() => executing.splice(0, 1));// 执行完从executin中剔除一个ret.push(p);executing.push(e);let r = Promise.resolve();if (executing.length >= maxNum) {// 判断executing中的长度是否大于等于限制数maxNumr = Promise.race(executing);}return r.then(() => enqueue());// 当 r = Promise.race 时会等到其中一个执行完才执行下一步}return enqueue().then(() => Promise.all(ret)) //全部执行完按顺序返回}复制代码
深克隆
function deepClone(target) {if (typeof (target) !== 'object') {return target;}var result;if (Object.prototype.toString.call(target) == '[object Array]') {// 数组result = []} else {// 对象result = {};}for (var prop in target) {if (target.hasOwnProperty(prop)) {result[prop] = deepClone(target[prop])}}return result;}复制代码
追问,怎么解决循环引用问题
可以参考我的文章 手写代码
三面
- 三栏布局,说出你能想到的所有方案
- 垂直居中,写出你知道的所有方案
- 两个div,都给margin:20px,这两个div的间距是多少?为什么会产生这种问题?怎么解决?(BFC)
- 怎么触发BFC,说出你能想到的所有方案
- AST是什么,有没有了解过AST
- 说一下你知道的所有的跨端解决方案(taro/uni-app/flutter/electron/React-Native/weex)
- 了解过Serverless,什么是Serverless
- 你还知道哪些新的前端技术(微前端、Low Code、可视化、BI、BFF)
- 平时学习的途径有哪些
- 权限系统设计模型(DAC、MAC、RBAC、ABAC)
- 什么是微前端
- Node了解多少,有实际的项目经验吗
- Linux了解多少,linux上查看日志的命令是什么
给出一个二叉树,用一个函数确定是否有一条从根节点到叶子节点的路径,这个路径上所有节点的值加在一起等于给定的sum的值。(思路:DFS + 求差 + 递归) leetcode112
var hasPathSum = function(root, sum) {// 根节点为空if (root === null) return false;// 叶节点 同时 sum 参数等于叶节点值if (root.left === null && root.right === null) return root.val === sum;// 总和减去当前值,并递归sum = sum - root.valreturn hasPathSum(root.left, sum) || hasPathSum(root.right, sum);};复制代码
HR
聊了20分钟左右,主要看下性格等软实力,正常沟通就好
总结
- 大厂技术栈主要是React,会React真的很占优势;
- 一面主要对你的简历整体做一个评估,对于某些点进行深入提问,整体考察下技术的广度和深度;
- 二面主要针对项目进行提问,并且会针对某些原理源码进行深入提问,即 项目 + 技术深度;
- 三面主要考察你的知识边界,前端、后端、数据库、linux都会问,不会不用怕,就是看下你的知识边界在哪里;
- 算法是字节的特色,基本每次面试最后都会有1-2道算法题,做不出来没问题,主要看你的思路看解题过程,不会千万别放弃,面试官提示你思路;
- 算法别做太快,要体现出思考过程和解题思路,题意不懂就问。题目做太快面试官可能会认为你做过这道题就会给你再加一道;
前端常考必考 180 题(进阶一)
1, HTTP 和 HTTPS
2,position 的值, relative 和 absolute 分别是相对于谁进行定位的?
3,如何解决跨域问题
4,Heap 排序方法的原理?复杂度?
5,几种常见的排序算法,手写
6,数组的去重,尽可能写出多个方法
7,如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
8,说说你对作用域链的理解
9,创建 ajax\过程
10,渐进增强和优雅降级
11,在 Bootstrap 中,下面栅格系统的标准用法中哪个是错误的?
12,你觉得 jQuery 或 Zepto 源码有哪些地方写得好?
13,浏览器页面有哪三层构成,分别是什么,作用是什么?
14,HTML5 的优点与缺点?
15,介绍模块化发展历程
16,对前端模块化的认识
17,Javascript 垃圾回收方法
18,TCP 和 UDP 的区别
19,谈谈性能优化问题
20,什么是 Etag?
21,javascript 继承的 6 种方法
22,创建 ajax 的过程
23,异步加载和延迟加载
24,ie 各版本和 chrome 可以并行下载多少个资源
25,Flash、Ajax 各自的优缺点,在使用中如何取舍?
26,快速 排序的思想并实现一个快排?
27,你觉得 jQuery 或 zepto 源码有哪些写的好的地方
28,ES6 的了解
29,js 继承方式及其优缺点
30,关于 Http 2.0 你知道多少?
31,defer 和 async
32,谈谈浮动和清除浮动
33,如何评价 AngularJS 和 BackboneJS
34,用过哪些设计模式?
35,说说你对闭包的理解
36,请你谈谈 Cookie 的弊端
37,浏览器本地存储
38,web storage 和 cookie 的区别
39,cookie 和 session 的区别:
40,display:none 和 visibility:hidden 的区别?
41,node 的事件方法讲讲看
42,node 的特性,适合处理什么场景
43,介绍一下 react
44,React 单项数据流
45,react 生命周期函数和 react 组件的生命周期
46,CSS3 新增伪类有那些?
47,CSS3 有哪些新特性?
48,对 BFC 规范的理解?
49,说说你对语义化的理解?
50,Doctype 作用? 严格模式与混杂模式如何区分?它们有何意义?
51,你知道多少种 Doctype 文档类型?
52,HTML 与 XHTML——二者有什么区别
53,常见兼容性问题?
54,解释下浮动和它的工作原理?清除浮动的技巧
55,浮动元素引起的问题和解决办法?
56,清除浮动的几种方法:
57,DOM 操作——怎样添加、移除、移动、复制、创建和查找节点。
58,html5 有哪些新特性、移除了那些元素?如何处理 HTML5 新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
59,如何实现浏览器内多个标签页之间的通信?
60,什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
61,null 和 undefined 的区别
62,new 操作符具体干了什么呢?
63,js 延迟加载的方式有哪些?
64,call()和 apply() 的区别和作用?
65,哪些操作会造成内存泄漏?
66,列举 IE 与其他浏览器不一样的特性?
67,WEB 应用从服务器主动推送 Data 到客户端有那些方式?
68,对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
69,一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
70,javascript 对象的几种创建方式
71,Expires 和 Cache-Control
72,ETag 应用:
73,为什么使用 Etag 请求头?
74,栈和队列的区别?
75,栈和堆的区别?
76,请解释一下 JavaScript 的同源策略。
77,为什么要有同源限制?
78,GET 和 POST 的区别,何时使用 POST?
79,事件、IE**与火狐的事件机制有什么区别? 如何阻止冒泡?
80,ajax 的缺点和在 IE 下的问题?
81,谈谈你对重构的理解
82,HTTP 状态码
83,说说你对 Promise 的理解
84,说说你对前端架构师的理解
85,说说严格模式的限制
86,如何删除一个 cookie
87,说说你对 AMD 和 Commonjs 的理解
88,document.write()的用法
89,git fetch 和 git pull 的区别
90,说说你对 MVC 和 MVVM 的理解
91,请解释什么是事件代理
92,attribute 和 property 的区别是什么?
93,说说网络分层里七层模型是哪七层
94,说说 mongoDB 和 MySQL 的区别
95,讲讲 304 缓存的原理
96,什么样的前端代码是好的
97,谈谈你对 Web 标准以及 W3C 的理解和认识。
98,CSS 有哪些基本选择器?他们的权重是如何表示的?
99,HTML5 有哪些新特性?移除了哪些元素?
100,CSS3 有哪些新特性?
101,常见 web 安全及防护原理
102,XSS 原理及防范
103,XSS 与 CSRF 有什么区别吗?
104,Web Worker 和 webSocket
105,Doctype 作用? 严格模式与混杂模式如何区分?它们有何意义?
106,HTML5 有哪些新特性、移除了哪些元素?
107,你做的网页在哪些浏览器测试过,这些浏览器的内核分别是什么?
108,每个 HTML 文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?
109,说说你对 HTML5 认识?(是什么,为什么)
110,对 WEB 标准以及 W3C 的理解与认识?
111,HTML5 行内元素有哪些,块级元素有哪些, 空元素有哪些?
112,什么是 WebGL,它有什么优点?
113,解释一下 CSS 的盒子模型?
114,请你说说 CSS 选择器的类型有哪些,并举几个例子说明其用法?
115,请你说说 CSS 有什么特殊性?(优先级、计算特殊值)
116,要动态改变层中内容可以使用的方法?
117,常见浏览器兼容性问题与解决方案?
118,列出 display 的值并说明他们的作用?
119,如何居中 div, 如何居中一个浮动元素?
120,CSS 中 link 和@import 的区别是?
121,请列举几种清除浮动的方法(至少两种)?
122,block,inline 和 inlinke-block 细节对比?123,说一下 http 和 https
124,tcp 三次握手,一句话概括
125,TCP 和 UDP 的区别
126,WebSocket 的实现和应用
127,HTTP 请求的方式,HEAD 方式
128,一个图片 url 访问后直接下载怎样实现?
129,说一下 web Quality(无障碍)
130,几个很实用的 BOM 属性对象方法?
131,说一下 HTML5 drag api
132,说一下 http2.0
133,JSONP 的缺点
134,跨域(jsonp,ajax)
135,如何实现跨域
136,dom 是什么,你的理解?
137,关于 dom 的 api 有什么
138,ajax 返回的状态
139,实现一个 Ajax
140,如何实现 ajax 请求,假如我有多个请求,我需要让这些 ajax 请求按照某种顺序一次执行,有什么办法呢?如何处理 ajax 跨域
141,如何实现一个 ajax 请求?如果我想发出两个有顺序的 ajax 需要怎么做?
142,Fetch 和 Ajax 比有什么优缺点?
143,前端测试
144,接口文档
145,webpack 和 gulp 区别(模块化与流的区别)
146,redux 用处
147,redux 里常用方法
148,angularJs 和 react 区别
149,vue 双向绑定原理
150,说说 vue react angularjs jquery 的区别
151,CSS 中 link 和@import 的区别是?
152,position:absolute 和 float 属性的异同
153,介绍一下 box-sizing 属性?
154,选择符有哪些?哪些属性可以继承?
155,优先级算法如何计算?
156,react 和 Vue 的原理,区别,亮点,作用
157,reactJs 的组件交流
158,有了解过 react 的虚拟 DOM 吗,虚拟 DOM 是怎么对比的呢
159,项目里用到了 react,为什么要选择 react,react 有哪些好处
160,怎么获取真正的 dom
161,选择 react 的原因
162,react 的生命周期函数
163,TCP 建立连接的三次握手过程
164,cdn 原理
165,HTTP 的头部包含哪些内容。常见的请求方法(我为什么要说后面的options,head,connect)
166,请求方法 head 特性
167,HTTP 状态码,301 和 302 有什么具体区别,200 和 304 的区别
168,OSI 七层模型
169,TCP 和 UDP 的区别,为什么三次握手四次挥手
170,HTTP 缓存机制
171,websocket 和 ajax 的区别是什么,websocket 的应用场景有哪些
172,TCP/IP 的网络模型
173,二叉树层序遍历
174,B 树的特性,B 树和 B+树的区别
175,尾递归
176,如何写一个大数阶乘?递归的方法会出现什么问题?
177,把多维数组变成一维数组的方法
178,知道的排序算法 说一下冒泡快排的原理
179,XML 和 JSON 的区别?
180,谈谈你对 webpack 的看法
