成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

你所不知道的JavaScript(三)

OBKoro1 / 2942人閱讀

摘要:的異步函數(shù)不會馬上執(zhí)行,而是先注冊監(jiān)聽,等到事件觸發(fā)了,就將這個回調(diào)函數(shù)壓入事件隊列中,等待順序運行的任務(wù)隊列空了以后,再執(zhí)行事件隊列中的函數(shù)。

第五章 語法

{…}一個代碼塊會返回最后一個語句的結(jié)果值,可以用eval()去獲得(不建議),{}在不同情況下意思不同,可以是語句塊、對象常量、解構(gòu)賦值或者命名函數(shù)參數(shù),在代碼塊中有一個坑,{}+[]//0,{}是一個空執(zhí)行塊(不執(zhí)行任何操作),最后+[]將[]強制類型轉(zhuǎn)換為0。[]+{}//”[object object]”。Switch中的判斷是一個嚴(yán)格相等的判斷,這個一不注意就會出錯。
在“&&”和“||”的判斷中,前者的優(yōu)先級高于后者的優(yōu)先級,而且a&&b里,若a為假值,會返回a的值而不會再往下判斷,而a||b里,若a為真值,會返回a的值而不會再往下判斷。

第二部分 異步與性能
第一章 異步:現(xiàn)在與未來

JS是一門異步單線程語言,這是為了在用戶交互時不會出現(xiàn)假死情況,優(yōu)化用戶體驗。沒有了并行就少了很多繁瑣的狀態(tài),而利用異步編程模擬并發(fā)又可以讓js效率提高,js有現(xiàn)在執(zhí)行的函數(shù),也有未來執(zhí)行的函數(shù)。js的異步函數(shù)不會馬上執(zhí)行,而是先注冊監(jiān)聽,等到事件觸發(fā)了,就將這個回調(diào)函數(shù)壓入事件隊列中,等待順序運行的任務(wù)隊列空了以后,再執(zhí)行事件隊列中的函數(shù)。

第二章 回調(diào)

我們?nèi)祟惖拇竽X都適應(yīng)了順序的做每一個動作,所以可以看做類似于單線程運行的事件循環(huán)隊列,就像js引擎一樣。由于異步編程,一不小心js就容易形成回調(diào)地獄,而且回調(diào)中缺乏順序性和可信任性容易造成控制反轉(zhuǎn),回調(diào)函數(shù)是js異步的基本單元,可是隨著業(yè)務(wù)的發(fā)展和推進(jìn),復(fù)雜度越來越高,因此需要一種更同步、更順序、更阻塞的方式來表達(dá)異步。

第三章 Promise

Promise提供了一種解決方式去處理現(xiàn)在值和未來值,每次執(zhí)行promise的返回值都是一個promise對象,這樣就意味著我們可以鏈?zhǔn)饺フ{(diào)用,它有三種狀態(tài),狀態(tài)只能改變一次,之后就不能再改變。Promise有三種狀態(tài)決議,完成和拒絕,Promise對象可以傳入兩個參數(shù)resolve和reject,分別會調(diào)用兩個函數(shù),決議和拒絕函數(shù)。

第四章 生成器

在es6中提出了生成器generator的概念,這意味著代碼可以在運行期間被暫停,然后等待命令繼續(xù)往下執(zhí)行,這種交替的暫停和恢復(fù)是合作性的而不是搶占性的。Function *foo(){},這就是一個生成器的聲明,在函數(shù)里如果碰到了yield就會暫停執(zhí)行,然后我們可以用next()去命令它往下運行,其中還能傳參數(shù),參數(shù)由對應(yīng)位置的yield接收,而要啟動生成器,我們首先得執(zhí)行一次next()第一個next傳任何參數(shù)都會被默認(rèn)視為undefined,next()還包含了一個value屬性,儲存的是下一個位置的yield的值。生成器的優(yōu)點就在于其內(nèi)部的代碼以自然的同步(順序)方式表達(dá)任務(wù)的一系列步驟,為異步代碼保持了順序、同步、阻塞的代碼模式。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93468.html

相關(guān)文章

  • 所不知道同比和環(huán)比真正區(qū)別

    摘要:給百度百科給的環(huán)比定義為環(huán)比,統(tǒng)計學(xué)術(shù)語,是表示連續(xù)個統(tǒng)計周期比如連續(xù)兩月內(nèi)的量的變化比。二你所不知道的同比環(huán)比兩種方式的核心區(qū)別判斷兩個數(shù)據(jù)到底是同比還是環(huán)比。 ...

    liujs 評論0 收藏0
  • 所不知道JSON.stringify

    摘要:已經(jīng)逐漸替代被全世界的開發(fā)者廣泛使用。函數(shù)將一個對象轉(zhuǎn)換成文本化的。不能被文本化的屬性會被忽略。和例外情況在數(shù)組中,不可被的元素用填充。自從年雙十一正式上線,累計處理了億錯誤事件,得到了金山軟件等眾多知名用戶的認(rèn)可。 譯者按: 老司機們,你知道JSON.stringify還有第二個和第三個可選參數(shù)嗎?它們是什么呢? 原文: What you didn’t know about JSO...

    piapia 評論0 收藏0
  • 所不知道 ? JavaScript 分號

    前言 找我請到 掘金 或者 Github自己也維護不過來那么多站點,對不住大家了。

    Caicloud 評論0 收藏0
  • 前端面試所不知道系列

    摘要:請注意是創(chuàng)建一個全局對象的屬性,而不是聲明了一個全局變量。由于變量聲明自帶不可刪除屬性,比較跟,前者是變量聲明,帶不可刪除屬性,因此無法被刪除后者為全局變量的一個屬性,因此可以從全局變量中刪除。下期預(yù)告前端面試你所不知道系列偽類和偽元素 寫在開始 又到了一年的伊始,很多人可能因為各種原因想換一份工作,而找工作難免遇到各種各樣頭痛的面試題,于是我打算寫一個系列,關(guān)于面試中最常見或者前端一...

    Julylovin 評論0 收藏0
  • 關(guān)于JavaScript對象,所不知道事(一)- 先談對象

    摘要:對象與屬性讓我們保持耐心,再梳理一下對象與屬性的關(guān)系對象是屬性的集合,當(dāng)對象的屬性是函數(shù)時,我們將其稱之為方法。 這篇博文的主要目的是為了填坑,很久之前我發(fā)表了一篇名為關(guān)于JavaScript對象中的一切(一) — 對象屬性的文章,想要談一談JavaScript對象,可那時只是貼了一張關(guān)于這個主題的思維導(dǎo)圖,今天我會針對這一主題進(jìn)行展開,將JavaScript對象一些平常不太常用的知識...

    mykurisu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<