乐趣区

关于前端:前端面试手写题目汇总

  1. 手写 new

  2. 创立一个空对象

  3. 连 prototype

  4. 扭转 this 指向

  5. 返回 看他在不在 Object 上

  6. setTimeout 实现 setInterval

  7. 每秒执行 settimeout

  8. sleep()

  9. add

  10. 用 array.from(argument) 将类数组对象转为数组

  11. 用 push 将其余项加进去,return 新数组

  12. 数组求和,应用数组隐式转换

  • valueOf:数组运算,返回最适宜该对象类型的原始值

  • toString:字符串运算,将该对象的原始值以字符串模式返回

  1. 深拷贝 浅拷贝

浅拷贝:

深拷贝:

判断返回类型是数组还是对象,克隆对象

  1. 手写 apply call bind

雷同:

  • call 和 apply 都是为了解决扭转 this 的指向。作用都是雷同的,只是传参的形式不同。

  • 他们第一个参数都是 this 的指向

区别:

  • apply 传入的是数组,返回原函数

  • call 传入的是参数列表,一次性传入,返回原函数

  • bind 传入也是参数列表,能够屡次传入,返回新函数,并且咱们能够通过 bind 实现柯里化,返回函数的拷贝值,然而带有绑定的上下文,它不会立刻执行

  1. call

  2. apply

  3. bind:

https://juejin.im/post/6844903682455109640#heading-3

https://www.jianshu.com/p/db49179caca1

https://zhuanlan.zhihu.com/p/150721732

  1. 手写防抖和节流

https://juejin.cn/post/6844903669389885453

https://zhuanlan.zhihu.com/p/72923073

防抖:多少秒后执行一次

设置定时器,革除再设置 1 秒执行。

<!– 防抖:设置定时器,在几秒后扭转函数的 arguments(类数组对象),在执行前须要先 clear 革除定时器 –>

闭包

工夫戳 闭包

节流:在规定工夫内继续触发只会执行一次

<!– 节流:在规定工夫内继续触发只会执行一次,在防抖的根底上减少一个开关,通过一个开关,与定时器 setTimeout 联合实现 –>

设置标记,

  1. 手写实现 repeat/ 复制字符串

  2. 手写实现 trim/ 去除前后空格

  3. 手写实现 instanceof

  4. 冒泡排序

比拟相邻的两个数 小的放在后面

https://www.cnblogs.com/onepixel/articles/7674659.html

  1. 抉择排序

遍历数组 而后抉择一个最小数值标识位 放在最后面 顺次排序

比拟最小索引

  1. 手写 promise

毛病:一旦执行 不能更改

.then 的链式调用

初始值 pending

胜利的值

失败的起因

一个寄存胜利的数组

一个寄存失败的数组

当 state 的状态扭转,resolve 调用将状态转为胜利并贮存胜利的值

退出移动版