前端之數據結構(一)| 8月更文挑戰

說到數據結構,對於前端來講其實接觸的不多,就好比說鏈表,前端是沒有的,可是經過Array以及JavaScript的內置api能夠知足鏈表的幾乎全部操做。雖然說如此,可是學習好數據結構對與咱們的往後開發確定是大有脾益的。甚至能夠發現,不少平常的操做,其實就是一些數據結構的映射。前端

接下來就讓我給你們介紹一下常見的八種數據結構。api

數據結構

數據結構:計算機存儲、組織數據的方式,就像鍋碗瓢盆。markdown

  • 一個後進先出的數據結構。

image.png

這就像咱們夾蜂窩煤同樣,後放的先拿出來。而放入的過程就是入棧,對應JavaScript中的 push 操做。對應的拿出就是出棧操做啦。對應其中的 pop。最後放入蜂窩煤的所在的位置就是對應的棧頂(top)了。數據結構

  • JavaScript中是沒有棧的,可是能夠用 Array實現棧的全部功能。併發

  • 應用場景,好比函數的調用堆棧。app

function fun1() {
    // 1 some codes
    fun2()
    // 2 some codes
}

function fun2() {
    return "Hello Word"
}

fun1()
複製代碼

上述代碼,就是一個調用棧的過程,它會先調用 fun1,再調用 fun2,而 當 fun2執行完以後,fun1纔算執行完。異步

最後調用的函數,最早執行完。函數

  • 棧經常使用操做:push、 pop、 stack[stack.length - 1]

隊列

  • 一個先進先出的數據結構。

image.png

  • 一樣在JavaScript中也沒有隊列的,可是能夠用 Array實現棧的全部功能。學習

  • 應用場景,好比JS異步中的任務隊列。ui

  • JS是單線程,沒法同時處理異步中的併發任務。

  • 使用任務隊列的方法前後處理異步任務。

image.png

  • 棧經常使用操做:push、 shift、 queue[0]

End!

相關文章
相關標籤/搜索