一、节流和防抖分别是什么?在什么场景下使用?请分别实现一个节流函数和一个防抖函数

节流函数常用于高频触发的场景,比如滚动事件,我们不希望频繁执行绑定的函数,只想让某段时间内只执行一次,这样可以提高性能。

  1. const throttle = (fn, wait) => {
  2. let timeout = null;
  3. return (...rest) => {
  4. if (!timeout) {
  5. timeout = setTimeout(() => {
  6. fn(...rest);
  7. timeout = null;
  8. }, wait)
  9. }
  10. }
  11. }

防抖函数则是只希望在触发的规定时间之后,如果没有下次触发,就去执行。比如电梯的门,一直有人进来的话就一直不会关闭,直到最后一个人进来一段时间后才会关闭。常用于防止提交按钮短时间被频繁点击、搜索的场景。

  1. const debounce = (fn, wait) => {
  2. let timeout = null;
  3. return (...rest) => {
  4. if (!timeout) {
  5. timeout = setTimeout(() => {
  6. fn(...rest);
  7. timeout = null;
  8. }, wait)
  9. } else {
  10. clearTimeout(timeout);
  11. timeout = null;
  12. }
  13. }
  14. }

二、怎么禁止让js读取cookie?怎么让cookie只在HTTPS下传输?

暂未接触