zoukankan      html  css  js  c++  java
  • js必会知识点

    • 函数防抖
    const debounce = (fn, time) => {
        let timer = null
        return function (...args) {
            if (timer) clearTimeout(timer)
            timer = setTimeout( () => { fn(...args) }, time)
        }
    }
    •  函数节流
    const throttle = (fn, time) => {
        let pre = Date.now()
        return function(...args) {
            let now = Date.now()
            if (now-pre >= time {
                fn(...args)
                pre = Date.now()
            }
        }
    }
    • EventLoop
    1. 首先执行同步代码,这属于宏任务
    2. 当执行完所有同步代码后,执行栈为空,查询是否有异步代码执行
    3. 执行所有微任务
    4. 当执行完所有微任务后,如有必要会渲染页面
    5. 然后开始下一轮EventLoop,执行宏任务中的异步代码,也就是setTimeout中的回调函数

    宏任务包括:script、setTimeout、setInterval、setImmediate、I/O、UI rendering
    微任务包括:process.nextTick(node独有)、promise、MutationObserver、

    • js基本算

    1. 时间复杂度指的是一个算法执行所耗费的时间

    2. 空间复杂度指运行完一个程序所需内存的大小  

    const arr = [13, 23, 1, 4, 14, 35, 21, 54]
    
    function bubbleSort(arr) {
      const l = arr.length - 1
      for (let j = 0; j < l; j++ ) {
        // 每次循环结束后最后一个数值最大,减少内层循环次数
        let done = true
        for (let i = 0; i < l - j; i++) {
          if (arr[i] > arr[i + 1]) {
            let temp = arr[i]
            arr[i] = arr[i + 1]
            arr[i + 1] = temp
            done = false
          }
        }
        // 某次循环时 若没有任何两数交换 表示排序完成
        if (done) break
      }
      return arr
    }
    console.log(bubbleSort(arr))

    时间复杂度: 平均时间复杂度O(n*n) 、最好情况O(n)、最差情况O(n*n)
    空间复杂度: O(1) 
    稳定性:稳定

  • 相关阅读:
    ubuntu 下的中文输入法的安装和配置- ibus
    数据分析-序列处理(2)
    数据分析创建数据框与数据获取(1)
    Python的函数与方法的区别
    Python3笔记015
    Python3笔记014
    Python3笔记013
    Python3笔记012
    Python3笔记011
    Python3笔记010
  • 原文地址:https://www.cnblogs.com/laine001/p/11191838.html
Copyright © 2011-2022 走看看