摘要:的異步函數(shù)不會(huì)馬上執(zhí)行,而是先注冊(cè)監(jiān)聽(tīng),等到事件觸發(fā)了,就將這個(gè)回調(diào)函數(shù)壓入事件隊(duì)列中,等待順序運(yùn)行的任務(wù)隊(duì)列空了以后,再執(zhí)行事件隊(duì)列中的函數(shù)。
第五章 語(yǔ)法
{…}一個(gè)代碼塊會(huì)返回最后一個(gè)語(yǔ)句的結(jié)果值,可以用eval()去獲得(不建議),{}在不同情況下意思不同,可以是語(yǔ)句塊、對(duì)象常量、解構(gòu)賦值或者命名函數(shù)參數(shù),在代碼塊中有一個(gè)坑,{}+[]//0,{}是一個(gè)空?qǐng)?zhí)行塊(不執(zhí)行任何操作),最后+[]將[]強(qiáng)制類(lèi)型轉(zhuǎn)換為0。[]+{}//”[object object]”。Switch中的判斷是一個(gè)嚴(yán)格相等的判斷,這個(gè)一不注意就會(huì)出錯(cuò)。
在“&&”和“||”的判斷中,前者的優(yōu)先級(jí)高于后者的優(yōu)先級(jí),而且a&&b里,若a為假值,會(huì)返回a的值而不會(huì)再往下判斷,而a||b里,若a為真值,會(huì)返回a的值而不會(huì)再往下判斷。
第二部分 異步與性能
第一章 異步:現(xiàn)在與未來(lái)
JS是一門(mén)異步單線程語(yǔ)言,這是為了在用戶(hù)交互時(shí)不會(huì)出現(xiàn)假死情況,優(yōu)化用戶(hù)體驗(yàn)。沒(méi)有了并行就少了很多繁瑣的狀態(tài),而利用異步編程模擬并發(fā)又可以讓js效率提高,js有現(xiàn)在執(zhí)行的函數(shù),也有未來(lái)執(zhí)行的函數(shù)。js的異步函數(shù)不會(huì)馬上執(zhí)行,而是先注冊(cè)監(jiān)聽(tīng),等到事件觸發(fā)了,就將這個(gè)回調(diào)函數(shù)壓入事件隊(duì)列中,等待順序運(yùn)行的任務(wù)隊(duì)列空了以后,再執(zhí)行事件隊(duì)列中的函數(shù)。
第二章 回調(diào)
我們?nèi)祟?lèi)的大腦都適應(yīng)了順序的做每一個(gè)動(dòng)作,所以可以看做類(lèi)似于單線程運(yùn)行的事件循環(huán)隊(duì)列,就像js引擎一樣。由于異步編程,一不小心js就容易形成回調(diào)地獄,而且回調(diào)中缺乏順序性和可信任性容易造成控制反轉(zhuǎn),回調(diào)函數(shù)是js異步的基本單元,可是隨著業(yè)務(wù)的發(fā)展和推進(jìn),復(fù)雜度越來(lái)越高,因此需要一種更同步、更順序、更阻塞的方式來(lái)表達(dá)異步。
第三章 Promise
Promise提供了一種解決方式去處理現(xiàn)在值和未來(lái)值,每次執(zhí)行promise的返回值都是一個(gè)promise對(duì)象,這樣就意味著我們可以鏈?zhǔn)饺フ{(diào)用,它有三種狀態(tài),狀態(tài)只能改變一次,之后就不能再改變。Promise有三種狀態(tài)決議,完成和拒絕,Promise對(duì)象可以傳入兩個(gè)參數(shù)resolve和reject,分別會(huì)調(diào)用兩個(gè)函數(shù),決議和拒絕函數(shù)。
第四章 生成器
在es6中提出了生成器generator的概念,這意味著代碼可以在運(yùn)行期間被暫停,然后等待命令繼續(xù)往下執(zhí)行,這種交替的暫停和恢復(fù)是合作性的而不是搶占性的。Function *foo(){},這就是一個(gè)生成器的聲明,在函數(shù)里如果碰到了yield就會(huì)暫停執(zhí)行,然后我們可以用next()去命令它往下運(yùn)行,其中還能傳參數(shù),參數(shù)由對(duì)應(yīng)位置的yield接收,而要啟動(dòng)生成器,我們首先得執(zhí)行一次next()第一個(gè)next傳任何參數(shù)都會(huì)被默認(rèn)視為undefined,next()還包含了一個(gè)value屬性,儲(chǔ)存的是下一個(gè)位置的yield的值。生成器的優(yōu)點(diǎn)就在于其內(nèi)部的代碼以自然的同步(順序)方式表達(dá)任務(wù)的一系列步驟,為異步代碼保持了順序、同步、阻塞的代碼模式。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/93468.html
摘要:給百度百科給的環(huán)比定義為環(huán)比,統(tǒng)計(jì)學(xué)術(shù)語(yǔ),是表示連續(xù)個(gè)統(tǒng)計(jì)周期比如連續(xù)兩月內(nèi)的量的變化比。二你所不知道的同比環(huán)比兩種方式的核心區(qū)別判斷兩個(gè)數(shù)據(jù)到底是同比還是環(huán)比。 ...
摘要:已經(jīng)逐漸替代被全世界的開(kāi)發(fā)者廣泛使用。函數(shù)將一個(gè)對(duì)象轉(zhuǎn)換成文本化的。不能被文本化的屬性會(huì)被忽略。和例外情況在數(shù)組中,不可被的元素用填充。自從年雙十一正式上線,累計(jì)處理了億錯(cuò)誤事件,得到了金山軟件等眾多知名用戶(hù)的認(rèn)可。 譯者按: 老司機(jī)們,你知道JSON.stringify還有第二個(gè)和第三個(gè)可選參數(shù)嗎?它們是什么呢? 原文: What you didn’t know about JSO...
摘要:請(qǐng)注意是創(chuàng)建一個(gè)全局對(duì)象的屬性,而不是聲明了一個(gè)全局變量。由于變量聲明自帶不可刪除屬性,比較跟,前者是變量聲明,帶不可刪除屬性,因此無(wú)法被刪除后者為全局變量的一個(gè)屬性,因此可以從全局變量中刪除。下期預(yù)告前端面試你所不知道系列偽類(lèi)和偽元素 寫(xiě)在開(kāi)始 又到了一年的伊始,很多人可能因?yàn)楦鞣N原因想換一份工作,而找工作難免遇到各種各樣頭痛的面試題,于是我打算寫(xiě)一個(gè)系列,關(guān)于面試中最常見(jiàn)或者前端一...
摘要:對(duì)象與屬性讓我們保持耐心,再梳理一下對(duì)象與屬性的關(guān)系對(duì)象是屬性的集合,當(dāng)對(duì)象的屬性是函數(shù)時(shí),我們將其稱(chēng)之為方法。 這篇博文的主要目的是為了填坑,很久之前我發(fā)表了一篇名為關(guān)于JavaScript對(duì)象中的一切(一) — 對(duì)象屬性的文章,想要談一談JavaScript對(duì)象,可那時(shí)只是貼了一張關(guān)于這個(gè)主題的思維導(dǎo)圖,今天我會(huì)針對(duì)這一主題進(jìn)行展開(kāi),將JavaScript對(duì)象一些平常不太常用的知識(shí)...
閱讀 2632·2021-11-19 09:56
閱讀 880·2021-09-24 10:25
閱讀 1648·2021-09-09 09:34
閱讀 2204·2021-09-09 09:33
閱讀 1063·2019-08-30 15:54
閱讀 550·2019-08-29 18:33
閱讀 1273·2019-08-29 17:19
閱讀 512·2019-08-29 14:19