手写代码

css

水平、垂直居中

1、 已知元素宽高
<1>absolute+负margin --- 必须要定宽高
<2>absolute+top、bottom、left、right=0+margin auto --- 必须要定宽高
2、元素宽高不定
<1>absolute+transform的translate (-50%) -- 兼容性
<2>line height+inline -- 如果其中有文字也会居中,需要重置
<3>table布局 --- display: table-cell;
<4>flex ---兼容性

三栏布局

<1>浮动布局:左右float,中间创建BFC或者magin。---内容展现顺序与DOM结构不一致,dom必须left->right->content
<2>定位布局:左中右都采用absolute定位。----父元素必须要定位
<3>flex布局: 中间直接flex: 1; ----兼容性
<4>grid布局: grid-template-columns: 200px 1fr 200px; ----兼容性

border三角形

1、等腰直角
2、等边
3、等腰

js

图片懒加载 (getBoundingClientRect().top和document.documentElement.clientHeight比较&& IntersectionObserver)

bind、call 和 apply

防抖、节流

柯里化、add()()、async自执行

ajax

实现一个继承

实现一个new

Object.create

实现一个 instanceof

手写 jsonp 的实现

数组的reduce方法

数组的map方法

数组的flat方法

手写 Promise

手写一个深拷贝、深对比去重、树形数据

用发布订阅模式实现EventEmit

双向绑定

算法

插入排序

冒泡排序

选择排序

快速排序

斐波那契以及优化

你可能感兴趣的:(手写代码)