原创 微前端落地系列(第0篇):技術選型

背景 微前端,相信大家就算沒用過,也一定聽過。什麼是微前端,爲什麼要上微前端,它和iframe的區別是什麼,大家在網上可以找到很多相關的文章,這裏就不在贅述了。我想通過這個《微前端落地系列》,把我對某個公有云系統做整體微前端架構改進的過程分

原创 帶你徹底弄懂Event Loop前言正文總結

前言我在學習瀏覽器和NodeJS的Event Loop時看了大量的文章,那些文章都寫的很好,但是往往是每篇文章有那麼幾個關鍵的點,很多篇文章湊在一起綜合來看,纔可以對這些概念有較爲深入的理解。於是,我在看了大量文章之後,想要寫這麼一篇博客,

原创 JavaScript數據結構02 - 棧

一、定義1.1 背景通過前面一節《JavaScript數據結構01 - 數組》我們知道,可以在數組的任意位置上刪除或添加元素。然而,有時候我們還需要一種在添加或刪除元素時有更多控制的數據結構。有兩種數據結構類似於數組,但在添加和刪除元素時更

原创 JavaScript異步編程

#前言 從我們一開始學習JavaScript的時候就聽到過一段話:JS是單線程的,天生異步,適合IO密集型,不適合CPU密集型。但是,多數JavaScript開發者從來沒有認真思考過自己程序中的異步到底是怎麼出現的,以及爲什麼會出現,也沒有

原创 JavaScript數據結構04 - 鏈表

一、定義1.1 概念前面我們學習了數組這種數據結構。數組(或者也可以稱爲列表)是一種非常簡單的存儲數據序列的數據結構。在這一節,我們要學習如何實現和使用鏈表這種動態的數據結構,這意味着我們可以從中任意添加或移除項,它會按需進行擴容。要存儲多

原创 JavaScript實現繼承

簡介本文不準備深入細節,主要是對《JavaScript高級程序設計中》介紹的JS如何實現繼承做一個總結,畢竟好記性不如爛筆頭。文末會附帶一張神圖,搞清楚這張圖,原型鏈也就沒有什麼問題了。ES5實現繼承的六種方式1. 原型鏈基本思想:利用原型

原创 JavaScript數據結構03 - 隊列

一、定義前面我們學習了棧的實現,隊列和棧非常類似,但是使用了不同的原則,而非後進先出。隊列是遵循FIFO(First In First Out,先進先出)原則的一組有序的項。隊列在尾部添加新元素,並從頂部移除元素。最新添加的元素必須排在隊列

原创 JavaScript實現函數重載

概念重載是指函數或者方法有相同的名稱,但是參數個數或類型不相同的情形,這樣的同名不同參的函數或者方法之間,互相稱之爲重載函數或方法。我們知道,JavaScript函數可以隨意傳遞任意數量、任意類型的參數,那麼它有沒有重載呢?答案是有的,下面

原创 從0到1實現Promise前言正文結束

前言Promise大家一定都不陌生了,JavaScript異步流程從最初的Callback,到Promise,到Generator,再到目前使用最多的Async/Await(如果對於這些不熟悉的可以參考我另一篇文章《JavaScript異步

原创 看圖學HTTPS前言正文總結

前言之前說到HTTPS,在我的概念中就是更安全,需要服務器配置證書,但是到底什麼是HTTPS,爲什麼會更安全,整套流程又是如何實現的,在腦子裏沒有具體的概念。所以,我花了幾天的時間,通過參考一些文章,學習了HTTPS整套機制的實現,想要通過

原创 聊聊V8引擎的垃圾回收

前言我們知道,JavaScript之所以能在瀏覽器環境和NodeJS環境運行,都是因爲有V8引擎在幕後保駕護航。從編譯、內存分配、運行以及垃圾回收等整個過程,都離不開它。在寫這篇文章之前,我也在網上看了很多博客,包括一些英文原版的內容,於是

原创 尾調用和尾遞歸

尾調用1. 定義尾調用是函數式編程中一個很重要的概念,當一個函數執行時的最後一個步驟是返回另一個函數的調用,這就叫做尾調用。注意這裏函數的調用方式是無所謂的,以下方式均可:函數調用: func(···) 方法調用: obj.

原创 git 常用操作總結

本文是對常用git操作做一個總結,後續也會同步到我的個人網站。1. 初始化用戶$ git config --global user.email "your email" $ git config –-global user.name "yo

原创 JS學習系列08 - 內存分配

本文會同步到我的個人網站中。在ECMAScript中,變量可以存放兩種類型的值 原始值 引用類型值 原始值指的是代表原始數據類型的值,例如:undefined null number string boolean 引用類型指的是

原创 CSS3 - 清除浮動

一、 目的通過本文,讓大家可以明白清除浮動的原理和幾種方法,最後得出一種本文認爲最好用的方法。 二、 內容簡介1、 引入,還原浮動本來的意義 2、 說明,實際開發中常用浮動來做什麼 3、 提問,爲什麼要清除浮動 4、 回答,如何清除浮動以及