一、webpack方向 webpack優(yōu)化其實(shí)可以歸為HTTP層面的優(yōu)化(網(wǎng)絡(luò)層面)。因?yàn)镠TTP這一層的優(yōu)化兩大方向就是:減少請(qǐng)求次數(shù)和縮短單次請(qǐng)求所花費(fèi)的時(shí)間。而這兩個(gè)優(yōu)...
一、webpack方向 webpack優(yōu)化其實(shí)可以歸為HTTP層面的優(yōu)化(網(wǎng)絡(luò)層面)。因?yàn)镠TTP這一層的優(yōu)化兩大方向就是:減少請(qǐng)求次數(shù)和縮短單次請(qǐng)求所花費(fèi)的時(shí)間。而這兩個(gè)優(yōu)...
事件循環(huán)是瀏覽器和Node用來(lái)解決JS單線程運(yùn)行帶來(lái)的問(wèn)題的一種運(yùn)行機(jī)制。瀏覽器和NodeJS環(huán)境下的事件循環(huán)是不同的,瀏覽器是完全遵循HTML5規(guī)范去實(shí)現(xiàn)的,NodeJS的...
用ES5實(shí)現(xiàn)繼承,就是用原型鏈實(shí)現(xiàn)。只要把子類(lèi)和父類(lèi)的原型鏈打通就解決了主要問(wèn)題。最常用的是組合繼承: 1、 。這句話的作用很明顯,是在Child()執(zhí)行時(shí),當(dāng)執(zhí)行到Fath...
Object.prototype.toString()是目前JS提供的顆粒度最小的類(lèi)型判斷方法,用來(lái)精確判斷數(shù)據(jù)類(lèi)型。如果我們把Object.prototype.toStri...
導(dǎo)讀 如果你查閱了javascript箭頭函數(shù)的資料,大抵會(huì)得出這樣的結(jié)論:1、箭頭函數(shù)最大的特點(diǎn)是沒(méi)有this,如果在箭頭函數(shù)內(nèi)部使用this,則this指向函數(shù)被定義時(shí)所...
一、為什么用靜態(tài)gzip方案? 服務(wù)端動(dòng)態(tài)gzip是常見(jiàn)的方案,即服務(wù)端判斷瀏覽器http請(qǐng)求頭中的Accept-Encodin是否有g(shù)zip,有的話就說(shuō)明瀏覽器支持gzip...
一、導(dǎo)讀 由于各種歷史原因javaScript的類(lèi)型轉(zhuǎn)換真的令人吐血。本文是老弟翻閱各種材料自己總結(jié)出的javaScript強(qiáng)制類(lèi)型轉(zhuǎn)換規(guī)則,整理了3張表和1個(gè)分析方法,便于...
一、導(dǎo)讀 本篇文章將說(shuō)清楚javaScript的原型、原型鏈機(jī)制,說(shuō)的不對(duì)評(píng)論區(qū)砸板磚~如果你看了很多篇博客仍然搞不清楚prototype 、_ _ proto _ _、ne...
HTTP狀態(tài)碼詳解 1xx:信息性狀態(tài)碼,表示服務(wù)器已接收了客戶(hù)端請(qǐng)求,客戶(hù)端可繼續(xù)發(fā)送請(qǐng)求。 100(Continue/繼續(xù)):如果服務(wù)器收到頭信息中帶有100-conti...
最近在掘金上看到一篇講解HTTP緩存的文章《前端優(yōu)化:瀏覽器緩存技術(shù)介紹》,我覺(jué)得講得很好,如果大家不熟悉HTTP緩存的話可以先看下這篇博客,很多細(xì)節(jié)都講的很具體,向博主學(xué)習(xí)...
NextTick微任務(wù)永遠(yuǎn)在Promise微任務(wù)之前執(zhí)行,而且除了Promise,NextTick微任務(wù)永遠(yuǎn)比其他所有微任務(wù)都要優(yōu)先。
個(gè)人認(rèn)為是有意義的設(shè)計(jì):NextTick就像一個(gè)鉤子一樣,在宏任務(wù)執(zhí)行后、微任務(wù)執(zhí)行前觸發(fā)(宏任務(wù)->NextTick->微任務(wù))。試想一下,如果NextTick和promise優(yōu)先級(jí)都一樣,你有一個(gè)Foo方法希望它在宏任務(wù)執(zhí)行完之后執(zhí)行,那么就必須保證代碼里NextTick的定義要寫(xiě)在所有的promise之前,并且讓所有promise走到then的時(shí)間要晚于NextTick,但這是不可能的(也許能辦到,但是就失去了用promise的意義),所以要固定NextTick的順序來(lái)支持你的這個(gè)‘希望’。
圖解JavaScript事件循環(huán)、執(zhí)行棧、任務(wù)隊(duì)列、宏任務(wù)、微任務(wù)事件循環(huán)就是Event Loop,是JavaScript 一個(gè)特殊的地方。特殊就在于JavaScript 是單線程語(yǔ)言,注定了對(duì)異步操作的處理有別于多線程語(yǔ)言。執(zhí)行棧和任務(wù)隊(duì)...
首先個(gè)人認(rèn)為“執(zhí)行棧 =》 宏任務(wù) =》 微任務(wù)”這種描述方式不是太準(zhǔn)確,有種把執(zhí)行棧當(dāng)做一個(gè)任務(wù)來(lái)看待的錯(cuò)覺(jué)。執(zhí)行??梢钥醋鍪怯螛?biāo)。
1、如果執(zhí)行棧當(dāng)前執(zhí)行完的是宏任務(wù),那么接下去就要執(zhí)行微任務(wù),所以你看起來(lái)是“執(zhí)行棧 =》 宏任務(wù) =》 微任務(wù)”;
2、如果執(zhí)行棧當(dāng)前執(zhí)行完的是微任務(wù),那么接下去會(huì)執(zhí)行下一個(gè)微任務(wù),如果不存在下一個(gè)微任務(wù)的話,那么接下去就要執(zhí)行宏任務(wù),所以你看起來(lái)是“執(zhí)行棧 =》 微任務(wù) =》 宏任務(wù)”。
圖解JavaScript事件循環(huán)、執(zhí)行棧、任務(wù)隊(duì)列、宏任務(wù)、微任務(wù)事件循環(huán)就是Event Loop,是JavaScript 一個(gè)特殊的地方。特殊就在于JavaScript 是單線程語(yǔ)言,注定了對(duì)異步操作的處理有別于多線程語(yǔ)言。執(zhí)行棧和任務(wù)隊(duì)...
使用vue雙向綁定的時(shí)候,有時(shí)候會(huì)遇到?jīng)]有檢測(cè)到數(shù)據(jù)變化的情況,以下情況,是需要在平常工作和使用中注意的問(wèn)題 數(shù)組盲區(qū) vue包含一組觀察數(shù)組變異的方法,使用這些方法也會(huì)觸發(fā)...
單向綁定非常簡(jiǎn)單,就是把Model綁定到View,當(dāng)我們用JavaScript代碼更新Model時(shí),View就會(huì)自動(dòng)更新。有單向綁定,就有雙向綁定。如果用戶(hù)更新了View,M...
對(duì)大部分人來(lái)說(shuō),掌握Vue.js基本的幾個(gè)API后就已經(jīng)能夠正常地開(kāi)發(fā)前端網(wǎng)站。但如果你想更加高效地使用Vue來(lái)開(kāi)發(fā),成為Vue.js大師,那下面我要傳授的這五招你一定得認(rèn)真...
javaScript原型和原型鏈的詳細(xì)介紹網(wǎng)上已經(jīng)有很多大神文章介紹過(guò),本篇不打算再講原理。如果朋友您已經(jīng)理解了原型、原型鏈興許這邊文章能起到一點(diǎn)點(diǎn)作用。說(shuō)實(shí)在的我在實(shí)際工作...
事件循環(huán)就是Event Loop,是JavaScript 一個(gè)特殊的地方。特殊就在于JavaScript 是單線程語(yǔ)言,注定了對(duì)異步操作的處理有別于多線程語(yǔ)言。執(zhí)行棧和任務(wù)隊(duì)...
Flex彈性布局,將是未來(lái)布局的首選,幾乎所有的瀏覽器都已支持。 傳統(tǒng)的盒模型display+position+float方案針對(duì)一些特殊的布局較考驗(yàn)程序員的功力,比如垂直居...