手写new
创建一个空对象
连prototype
改变this指向
返回 看他在不在Object上
setTimeout实现setInterval
每秒执行settimeout
sleep()
add
用array.from(argument) 将类数组对象转为数组
用push将其他项加进去,return新数组
数组求和,使用数组隐式转换
valueOf:数组运算,返回最适合该对象类型的原始值
toString:字符串运算,将该对象的原始值以字符串形式返回
深拷贝 浅拷贝
浅拷贝:
深拷贝:
判断返回类型是数组还是对象,克隆对象
手写apply call bind
相同:
call 和 apply 都是为了解决改变 this 的指向。作用都是相同的,只是传参的方式不同。
他们第一个参数都是this的指向
区别:
apply 传入的是数组,返回原函数
call 传入的是参数列表,一次性传入,返回原函数
bind 传入也是参数列表,可以多次传入,返回新函数,并且我们可以通过 bind 实现柯里化,返回函数的拷贝值,但是带有绑定的上下文,它不会立即执行
call
apply
bind:
https://juejin.im/post/6844903682455109640#heading-3
https://www.jianshu.com/p/db49179caca1
https://zhuanlan.zhihu.com/p/150721732
手写防抖和节流
https://juejin.cn/post/6844903669389885453
https://zhuanlan.zhihu.com/p/72923073
防抖:多少秒后执行一次
设置定时器,清除再设置1秒执行。
<!-- 防抖: 设置定时器,在几秒后改变函数的arguments(类数组对象),在执行前需要先clear清除定时器 -->
闭包
时间戳 闭包
节流:在规定时间内持续触发只会执行一次
<!-- 节流:在规定时间内持续触发只会执行一次,在防抖的基础上增加一个开关,通过一个开关,与定时器setTimeout结合完成 -->
设置标记,
手写实现repeat/复制字符串
手写实现trim/ 去除前后空格
手写实现instanceof
冒泡排序
比较相邻的两个数 小的放在前面
https://www.cnblogs.com/onepixel/articles/7674659.html
选择排序
遍历数组 然后选择一个最小数值标识位 放在最前面 依次排序
比较最小索引
手写promise
缺点: 一旦执行 不能更改
.then的链式调用
初始值pending
成功的值
失败的原因
一个存放成功的数组
一个存放失败的数组
当state的状态改变,resolve调用将状态转为成功并储存成功的值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。