HTML 篇
网页中的SEO优化
dom对象的基本操作
event对象中 target和currentTarget 属性的区别
白屏/首屏时间计算
前端性能监控/异常监控
请说说
scrollIntoView和scrollIntoViewIfNeeded的使用区别
CSS 篇
你知道什么是BFC吗?
说说CSS选择器以及这些选择器的优先级
!important(后声明的important可以覆盖之前声明的)- 内联样式(1000)
- ID选择器(0100)
- 类选择器/属性选择器/伪类选择器(0010)
- 元素选择器/伪元素选择器(0001)
- 关系选择器/通配符选择器(0000)
如何处理CSS命名混乱导致相互影响问题
- 使用
BEM规范来命名类 - 使用
CSS Modules方案 - 使用
css in js方案,例如styled-components - 使用
tailwindcss等原子性css方案
CSS Modules
产生局部作用域的唯一方法,就是使用一个独一无二的class的名字,不会与其他选择器重名。这就是 CSS Modules 的做法
BEM命名规范
BEM的意思就是块(block)、元素(element)、修饰符(modifier),是由Yandex团队提出的一种CSS Class 命名方法。
需要注意的是,BEM规范并不是让类命无限级联,因为它并不严格的与DOM挂钩,所以元素层级嵌套的多少层也没关系,命名约定是为了更好的识别顶级组件模块
Tailwind.css
CSS预处理器scss,less
less和scss/sass的区别
CSS中的层叠上下文和层叠顺序以及层叠水平
了解 Flex 布局么?平常有使用 Flex 进行布局么?
了解 Grid 布局么?平常有使用 Grid 进行布局么?
flex: 1中,设置height或者width的作用
- 如果没有设置width,当内部元素的内容大小超过平均分配的剩余空间时,元素的宽度等于内容大小
- 如果设置了width并且这个width的大小小于平均分配的剩余空间大小时,取平均分配的剩余空间
- 当flex设置为 1 时 相当于 剩余空间大小 = 父元素的宽度,因此,平均的剩余空间大小等于 = 父元素的宽度 / 元素的个数
- 直接设置width为0可以保证元素宽度平分父元素宽度
- 总结
- 可以解决子元素
高度或宽度超出父元素问题 - 可以解决
flex:1;的子元素height: 100%无效问题
- 可以解决子元素
如何设计一个 4 列等宽布局,各列之间的边距是 10px(考虑浏览器的兼容性)?
- flex布局
- grid布局
- float布局
- table布局
行内元素,块级元素的
水平/垂直居中
CSS 清除浮动的原理是什么?
clear 属性规定元素的哪一侧不允许其他浮动元素
浮动元素和绝对定位元素的区别和应用?
CSS 中的
vertical-align有哪些值?它在什么情况下才能生效?
CSS 中的
background的background-image属性可以和background-color属性一起生效么?
了解 CSS 3 动画的硬件加速么?在重绘和重流方面有什么需要注意的点?
伪元素和伪类有什么区别?
浮动元素和绝对定位元素的区别和应用?
多行元素的文本省略号
white-space,word-break,word-wrap区别
如何判断一个元素 CSS 样式溢出,从而可以选择性的加 title 或者 Tooltip?
如何让 CSS 元素左侧自动溢出(... 溢出在左侧)
JS/TS 篇
实现对象的深拷贝
instanceof的底层原理
function instance_of(L, R) {
var O = R.prototype;
L = L.__proto__;
while (true) {
if (L === null) return false;
if (O === L) return true;
L = L.__proto__;
}
}
如何判断对象的一个
属性/方法是自身的还是原型链上的
通过hasOwnProperty于in操作符组合
function isAttributeInPrototype(obj, key) {
return !obj.hasOwnProperty(key) && (key in obj)
}
用 JavaScript 实现函数的
防抖(debounce)和节流(throttle)
改变函数内部this指针的指向函数(bind,apply,call的区别及实现原理)
在 JavaScript 中如何实现对象的
私有属性?
async / await和Promise的区别?JavaScript 中几种
迭代语法在 Chrome 等现代浏览器中的性能差异?谈谈你对 TypeScript 的理解?
在 JavaScript 可以有哪几种形式
实现继承,各有什么优缺点, 说说 ES5 和 ES6 继承的区别?es6的
proxy介绍,以及与es5中的Object.defineProperty的区别
es6 Modules相对于CommonJS的区别是什么?
设计模式篇
说说在开发中经常的几种设计模式
Vue 篇
React 篇
谈谈React Hooks中
过时闭包问题谈谈几种常见Hooks的用法及注意点
useEffect、useCallback、useMemo、useRefReact-Router中
history模式和hash模式的区别,背后的实现原理是什么实现一个防抖hooks
useDebounce实现一个节流hooks
useThrottle在无状态组件每一次函数上下文执行的时候,
react用什么方式记录了hooks的状态?多个
react-hooks用什么来记录每一个hooks的顺序的 ? 换个问法!为什么不能条件语句中,声明hooks?
function函数组件中的useState,和class类组件setState有什么区别?
react是怎么捕获到hooks的执行上下文,是在函数组件内部的?
useEffect,useMemo中,为什么useRef不需要依赖注入,就能访问到最新的改变值?
useMemo是怎么对值做缓存的?如何应用它优化性能?为什么两次传入
useState的值相同,函数组件不更新?
前端工程领域篇
谈谈
webpack中loder和plugin的区别谈谈
babel的工作原理谈谈
@bable/preset-env,@babel/plugin-transform-runtime
浏览器篇
浏览器
强缓存和协商缓存的区别及运作方式协商缓存的
etag方式和last-modefined方式的各自优缺点
cookie的属性有哪些
浏览器从输入url到页面呈现的过程,尽可能详细
HTTP/HTTPS
https加密是怎么做的,具体的实现过程
算法能力篇
二叉树的
深度优先和广度优先介绍,先序遍历中序遍历后序遍历等,深度和广度具体怎么代码实现?口述代码
网络安全篇
常见的几种网络攻击方式,如何应对?
内容安全策略CSP(Content-Security-Policy)
性能优化篇
有用过cdn吗?cdn的优点有哪些?cdn怎么实现就近访问的
业务篇
笔试篇
参考文章