H5相关:
1、HTML5有哪些更新
2、长列表优化之虚拟列表
前端性能优化之虚拟列表(附DEMO)
3、DOM节点类型

 元素节点                   Node.ELEMENT_NODE(1)
 属性节点                   Node.ATTRIBUTE_NODE(2)
 文本节点                   Node.TEXT_NODE(3)

4、CSS 3 中 -webkit-, -moz-, -o-, -ms- 这些私有前缀,不同的厂商有着自己的利益,很多时候对于同一规范并不会完全按照执行。

-moz代表firefox浏览器私有属性;
-ms代表IE浏览器私有属性;
-webkit代表chrome、safari私有属性;
-o代表Opera私有属性。

5、移动端上面,事件执行顺序是:touchstart > touchend > click。
FastClick的思路就是利用touch来模拟tap(即点击事件),如果认为是一次有效的tap,则在touchend时立即模拟一个click事件,分发到事件源(相当于主动触发一次click),同时阻止掉浏览器300ms后产生的click。自然也不存在点击穿透的问题。
你真的了解FastClick吗?
移动端tap与click的区别 && 点透事件
6、浅谈 JS 防抖和节流
7、lodash._debounce() 的参数options.leading 与|或 options.trailing 决定延迟前后如何触发(注:是 先调用后等待 还是 先等待后调用)。
immediate如何实现:https://blog.csdn.net/weixin_...
8、addEventListener passive 属性
浏览器知道了一个监听器是 passive 的,它就可以在两个线程里同时执行监听器中的 JavaScript 代码和浏览器的默认行为(不用等待监听事件执行结束后再执行)了。

CSS相关:
1、CSS、Sass、Scss,以及sass和scss的区别
2、10 分钟理解 BFC 原理
3、CSS3动画
4、弹性布局(响应式之一)之flexible.js
5、移动端浏览器兼容问题处理 生产处理过的兼容问题
6、css实现幻灯片播放效果

Javascript相关:
1、静态属性和方法:定义在构造函数上的属性或方法。只能通过构造函数名来调用。
2、模块:我们可以使用函数和闭包来构造函数。模块是一个提供接口和隐藏实现的函数或对象。通过使用函数产生模块,我们几乎可以完全摒弃全局变量的使用,从而缓解这个JavaScript的最为糟糕的特性之一所带来的影响。
3、prototype是函数才有的属性,用来访问原型。__proto__是对象都有的属性,用来访问对象的原型链。
特殊点一:函数既是函数又是对象,所以既有prototype属性,又有__proto__属性。
作为函数,它们的原型对象上层都是Object.prototype,即:
Function/Function A/Number/Array.prototype.__proto__ == Object.prototype
作为对象,他们都是Function类的实例,即:
Function/Function A/Number/Array.__proto__ === Function.prototype

性能:在原型链上查找属性比较耗时,对性能有副作用,遍历对象的属性时,原型链上的每个可枚举属性都会被枚举出来。要检查对象是否具有自己定义的属性,而不是其原型链上的某个属性,则必须使用所有对象从 Object.prototype 继承的 hasOwnProperty (en-US) 方法,该方法是JavaScript 中唯一一个处理属性并且不会遍历原型链的方法。
4、前端异常监控解决方案研究
Window.onError onunhandledrejection 重写console.error
详解JavaScript中的错误类型:
SyntaxError(语法错误) 解析代码时发生的语法错误 eg:var 1a; ...
ReferenceError(引用错误) a.引用了一个不存在的变量 eg: ...
RangeError(范围错误) 超出有效范围 eg:var a= new Array...
TypeError(类型错误) a.变量或参数不是预期类型,比如,对字符串、布尔值、数值...
URLError(URL错误) 与url相关函数参数不正确,主要是encodeURI()...

5、数组高阶函数用法:[1,2,3].reduce((total, num)=> total+num, 10) // 16
6、为什么commonjs不适合于浏览器端
浏览器加载 CommonJS 模块的原理与实现
7、babel是如何编译es6 class和extends的
ES6 系列之 Babel 是如何编译 Class 的(上)
ES6 系列之 Babel 是如何编译 Class 的(下)

Vue相关:
1、diff算法、key作用,不要key会怎样 -- wait理解
Vue2.0 v-for 中 :key 到底有什么用?
Vue源码解析:虚拟dom比较原理
2、keep-alive如何实现?
2、说说Vue2.0和Vue3.0有什么区别
TS、更好的性能、Composition API、Tree-shaking...
vue2.0和vue3.0区别
3、v-model 语法糖

重点:setup相当于beforeCreate,由于在执行 setup 时尚未创建组件实例,因此在 setup 选项中没有 this。这意味着,除了 props 之外,你将无法访问组件中声明的任何属性——本地状态、计算属性或方法。

Node平台相关:
node的child_process如何通信:IPC
express & koa

webpack:
1、vite虽香,但webpack还是要学的
2、编写webpack的loader和plugin(附实例)
3、webpack与rollup打包库结果差异之_webpack_require_
Vite:
vite一定能替代webpack吗?
前端新玩具:Vite 及相关思考
前端面试必备——eslint篇 我写的:eslint配合git hook规范代码

工程化:
1、谈谈你对前端工程化的理解
2、前端怎么写单元测试? --wait

算法相关:
1、在查看js源码后,V8 引擎 sort 函数只给出了两种排序 InsertionSort 和 QuickSort,数量小于10的数组使用 InsertionSort,比10大的数组则使用 QuickSort。
快排时间复杂度:nlogn

流行框架:
1、微服务入门这一篇就够了
2、可能是你见过最完善的微前端解决方案

HTTP相关:
1、浏览器发起http请求时候,如何知道服务器支持什么http 版本?
2、详解http-2头部压缩算法
简述Hpack算法的过程:
消息发送端和消息接受端共同维护一份静态表和一份动态表(这两个合起来充当字典的角色)。每次请求时,发送方根据字典的内容以及一些特定指定,编码压缩消息头部,
接收方根据字典进行解码,并且根据指令来判断是否需要更新动态表。
3、说下https,证书是如何校验的?你觉得阻碍http2发展的问题是什么?
TCP 以及 TCP+TLS 建立连接的延时、多路复用容易 Timeout

Gitflow:
关于 Git 的 20 个面试题
git stash暂存分支修改后,再checkout切换到其他分支,回来后git stash pop恢复暂存的修改。


JohnsonGH
29 声望1 粉丝

« 上一篇
Interview Points