主观题
移动端
Vue相关
- 【vue-router】
- 【vuex】
- vue2和vue3,diff算法优化
- vue-cli
- diff算法,虚拟dom
- vue插槽
- keep-alive
- this.$nextTick
- v-model,数据双向绑定的实现和响应式原理
- 响应式
- 生命周期
- vue3 hooks
- scoped原理
- vue2 computed原理,和watch的区别
- vue编译过程
- 设计一个dialog组件
- vue和react
- vue3相关
- 以下常见问题
- data为什么是一个函数,而不是一个对象?什么情况下可以使用对象?
- key的作用,为什么不能用Index?
- render函数,h函数,和template什么关系?
- vue 是怎么解析template的? template会变成什么?
- 父子,子孙传值
- 子组件为什么不能修改props,有什么办法能让子组件v-model使用props?
- 服务端渲染nuxt
- 重写Vue数组中的push方法,每次push时输出push的值
- v-if 和 v-show 有什么区别?应用场景。
- provide和inject优缺点和使用场景
JS
- js和css阻塞问题
- 【TS相关】,typescript和javascript的区别
- 类数组转为数组
- 基本包装类型
- 跨域 | Github地址
- call apply bind原生实现
- this指向问题和常见例题
- 创建对象和实现继承的方式, | 原型链 | instanceof原理 | |new原理,
- 闭包
- 数组、字符串方法
- 深拷贝和浅拷贝
- 冒泡、事件捕获
- 箭头函数与普通函数的区别
- es7 es8 es9 es10
- 函数式编程
- 函数防抖和节流
- 函数柯里化,实现add(1)(2)(3)
- 回调地狱
- es6——promise
- es6——Set、Map、WeakSet、WeakMap
- es6——class | es6——class的继承
- 如何判断元素为proxy类型
- setTimeout和setInterval, requestAnimationFrame实现setInterval和setTimeout
- 实现sleep函数
- web worker
- async await原理,和generator, promise这三者的关联和区别是什么?
- fetch和axios的区别,封装axios | axios原理
- 作用域、变量提升、执行上下文
- ES2023最新特性
- for in和for of
- JS隐式转换与显式转换 例:[] ==[] false VS [] == ![] true
- JS常见问题
- 实现Array.isArray()
- JS数据类型和相关问题
- 如何避免一个对象的属性被修改?
- new String(‘a’)和’a’相同吗?
- 判断数据类型
- new 一个构造函数,如果函数返回 return {} 、 return null , return 1 , return true 会发生什么情况?
- Symbol
- 如何让 var [a, b] = {a: 1, b: 2} 解构赋值成功?
- [‘1’,‘5’,‘11’].map(parseInt) 为[1,NaN,3]
- 数组去重
- script标签中defer和async的区别?
- 0.1+0.2为什么不等于0.3?0.1+0.1=0.2
TS
- TS常见问题
- 什么是 TypeScript?它与 JavaScript 有什么区别?
- TS 泛型、接口、泛型工具record、Pick、Omit
- TS unknow和any的区别
- 元组与常规数组的区别
- 什么是泛型,有什么作用?
- 什么是装饰器?
- interface与type 有何区别?
CSS
- css动画 VS js动画requestAnimationFrame
- GPU 和 CSS 硬件加速
- 层叠上下文
- 水平居中、垂直居中、水平垂直居中
- 两列等高
- flex布局,实现骰子布局
- BFC
- 圣杯和双飞翼
- CSS解析过程
- transform
- 绝对定位、相对定位
- 重排与重绘
- bootstrap栅格系统实现原理?
- 用css实现一个三角形、空心三角形、箭头
- 清除浮动
- CSS3
- 预编译语言less、sass
- 图片懒加载
- 左侧固定宽,右侧自适应
- 选择器优先级
- 实现一个比12px更小的字体,设置一个0.5px的边框
- position sticky VS positon fixed 与 width:100% VS width:auto
- css小知识
- box-sizing属性描述的是什么,可以设置为哪些值?盒子模型
- 黑白棋格
打包工具
- webpack一文通
- 手写一个loader | 博客
- 手写一个plugin | 博客
- webpack中require和import执行过程
- webpack和vite的区别
- vite打包流程和原理
- tree shaking
- 代码分割
数据结构与算法
Node相关
- node介绍和事件循环 | 博客
- router
- node相关
- express
- 为什么要用Node做中间层呢?
Http和计网相关
- https建立的过程
- meta属性有哪些?
- get和post区别
- 从输入URL到页面展示发生了什么
- http和https的区别和联系
- sessionStorage、localStorage和cookie区别,session和cookie的区别
- TCP“三次握手,四次挥手”
- 状态码详解和常见的请求响应头
- http/1.0 http/1.1 http/2.0 http3.0
- cookie
- 强缓存和协商缓存
- OSI模型
- websocket
- 流量劫持
- CommonJS、AMD、CMD、UMD以及ES6的模块系统
设计模式
微前端
Git
重点项目实践
其他
-
安全性问题,网站攻击方式 跨站脚本攻击XSS以及跨站请求伪造CRSF
官方文档
react相关
- 生命周期函数
- setState原理
- 项目使用react-redux时,用户触发action改变state,改变UI
- Diff算法 | 转载
- react-router 的API及原理
- redux 的API及原理 | 转载
- react-redux 之provider | react-redux之connect
- HOOK(新版本V16.8出现)
- react新版本新API
- react的key值作用
- react组件之间传值
- react受控组件、非受控组件以及高阶组件
- 虚拟dom是什么?为什么要引入?一定会比操作真实dom快嘛?
- vue和react的区别