前言ajax
近來,老是忙於拿js寫一些案例,由於是小白,並無什麼豐富的經驗,對各個知識點把握也不是很全面,寫起來真的是...一言難盡,太痛苦了= =、尤爲是在寫一些輪播的時候,裏面須要用到定時器,而一旦用了定時器,就要考慮js中一個重要無比的知識點!沒錯,就是同步與異步,這問題困擾了我很長時間,通過幾番波折.......仍是沒有把案例搞出來,哈哈,可是對這個知識點仍是瞭解了很多,因而就有了這篇博客~下面進入正題:異步
知識點羅列函數
一、同步:js自己就是同步的,也就是說代碼從上往下執行的這麼一個機制。this
二、異步:每一個模塊執行本身的,同時執行。emmm...看起來挺難理解的,舉個栗子吧,嗷..對了,這裏說一下js中異步有"定時器"、"ajax"、"事件的綁定"、"回調函數",差點忘了,哈哈。spa
咱們拿事件來簡單的瞭解一下異步,下面是栗子的代碼~:blog
看完以後,咱們能夠先本身屢一下思路,當依次點擊三個div時,console.log(j)到底會輸出什麼。索引
須要注意的是,這個事件是寫在for循環裏的,而事件又是異步的,因此for循環在遍歷時不會管你這個事件到底觸發沒觸發,它都會繼續向下執行代碼,事件
直到循環結束,而當頁面加載完畢後,for循環確定也就遍歷完畢了,此時的i值爲2,以後咱們點擊第一個div時,也就是事件元素的索引爲0時,圖中箭頭所指的i值就是2,因此會依次輸出0、一、2,與目的不符,意思就是想讓0出來,可是1和2也跟着蹦出來了,因此咱們通常會將外面for循環的i值存到一個自定義屬性ind裏,而後把箭頭所指的i換爲this.ind,這樣二者就會相匹配,只會輸出0。很噁心的...不過見多了,其實也就那個樣。回調函數
好了,聽了我稀裏糊塗的講解,有沒有很清晰的趕腳?/捂臉同步
就先這樣吧,等我把案例敲出來了再繼續補充別的。 /滑稽臉