2025年5月29日
摘要:
最近在開發過程中,一個外包同學遇到這樣一段代碼,他不太能理解為什么執行順序不是他期望的,讓我幫他解答一下,后來我看了一下,還蠻有意思的,我還給域內同學看了一下,有的也踩到坑里去了,于是我寫了一段簡版的,分享給大家 添加圖片注釋,不超過 140 字(可選) 這段代碼執行完,應該會打印什么呢? 那位同學
閱讀全文
posted @ 2025-05-29 14:56
言先生
閱讀(7)
推薦(0)
摘要:
一,目標 今天打算做一些webpack打包編譯的速度優化。 二,準備工作 當前webpack版本 4.43.0 首先,既然是做速度優化,就得先知道當前的編譯速度是多少。 推薦這個插件:speed-measure-webpack-plugin GitHub地址: https://github.com/
閱讀全文
posted @ 2025-05-29 14:55
言先生
閱讀(74)
推薦(0)
摘要:
背景 目前現有的監控平臺針對H5在線應用,提供的可監控指標較少,特別是在性能指標這塊,因此當我們有H5在線應用時,沒辦法做到更全面的性能數據監控,更沒辦法針對不同的維度去做性能優化。 其實之前在攜程的時候,也做過H5性能監控,但是針對指標這塊,并沒有非常詳細地去深入研究過,正好借這個機會,好好整理了
閱讀全文
posted @ 2025-05-29 14:54
言先生
閱讀(48)
推薦(0)
摘要:
前言: 所有的編程語言都具備一個基本功能,儲存、訪問、修改變量的值,這種能力將狀態帶給了程序。 那問題來了:變量儲存在哪里?如何訪問到它們? 一,編譯原理 一段源代碼在執行前會經歷的三個步驟,統稱為編譯。 1,傳統編譯語言(這里以執行“var a = 2;”為例) 1?? 分詞/詞法分析(Token
閱讀全文
posted @ 2025-05-29 14:53
言先生
閱讀(17)
推薦(0)
摘要:
引言:很多人在學習Babel的時候,不知道怎么入手,除了那些生硬的配置文件,還要掌握哪些知(mian)識(shi)點(ti)呢?今天筆者就總結了一些你需要了解的Babel相關的知識點。 注:本篇是根據最新babel 7版本寫的,里面用到的一些babel相關包都是babel 7的 1,babel是如何
閱讀全文
posted @ 2025-05-29 14:51
言先生
閱讀(27)
推薦(0)
摘要:
for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i) }, i * 1000) } 上面這個內容會打印什么? 看過這題的都會知道答案,每隔一秒打印一個5,打印5次。如果我想將每一輪循環的i打印出來呢,很簡單,將var
閱讀全文
posted @ 2025-05-29 14:50
言先生
閱讀(9)
推薦(0)
摘要:
Event loop事件循環,是一個執行模型。不同的瀏覽器以及Nodejs里的具體實現是不一樣的。 一,瀏覽器端: HTML5規范里有明確定義 簡單的說: 1,JS是單線程的,執行的時候在一條主棧上; 2,當遇到異步代碼時,會區分它是宏任務還是微任務; 3,比如setTimeout和setInter
閱讀全文
posted @ 2025-05-29 14:49
言先生
閱讀(13)
推薦(0)
摘要:
這里先來看一段代碼,這是HTML規范里提到的: eventLoop = { taskQueues: { events: [], // UI events from native GUI framework parser: [], // HTML parser callbacks: [], // se
閱讀全文
posted @ 2025-05-29 14:48
言先生
閱讀(18)
推薦(0)
摘要:
先來看一下傳統的面向類式的寫法: function Foo(name) { this.name = name; } Foo.prototype.sayName = function() { console.log('name: ' + this.name) } function Bar(name,
閱讀全文
posted @ 2025-05-29 14:47
言先生
閱讀(14)
推薦(0)
摘要:
在介紹我們的主角之前,我們先來回顧一下經典的類和繼承的設計模式。 如果你對這塊內容比較熟悉的,可以直接跳過這篇,看(下)篇。 不過也可以看一遍,因為這塊會講得比較細,相信你會有新的收獲。 先上代碼 function Foo() {} Foo.prototype.print = function()
閱讀全文
posted @ 2025-05-29 14:46
言先生
閱讀(19)
推薦(0)