原创 根據vue-cli手摸手實現一個自己的腳手架

故事背景 身爲一個入門前端七個月的小菜雞,在我入門前端的第一天就接觸到了vue,並且死皮賴臉的跟他打了這麼久的交到,還記得第一次用vue init webpack 這句命令一下生成一個模板的時候那種心情,當時我就想,要是自己也能寫一個的話,

原创 從js講解時間複雜度和空間複雜度

1. 博客背景 今天有同事在檢查代碼的時候,由於函數寫的性能不是很好,被打回去重構了,細思極恐,今天和大家分享一篇用js講解的時間複雜度和空間複雜度的博客 2. 複雜度的表示方式 之前有看過的,你可能會看到這麼一串東西 T(n) = O(f

原创 常見前端本地存儲

說一說常用得本地存儲方法 cookie localStorage sessionStorage cookie cookie這個東西我覺得對於前端來講都不會很陌生,瀏覽器都會支持cookieHTTP cookie 在最初得時候適用於客戶端

原创 js常用設計模式實現(三)建造者模式

創建型模式 創建型模式是對一個類的實例化過程進行了抽象,把對象的創建和對象的使用進行了分離 關於創建型模式,已經接近尾聲了,還剩下建造者模式和原型模式,這一篇說一說建造者模式 建造者模式的定義 將一個複雜對象的構建與它的表示分離,使得同樣的

原创 js常用設計模式實現(二)工廠模式和抽象工廠模式

創建型模式 創建型模式是對一個類的實例化過程進行了抽象,把對象的創建和對象的使用進行了分離 上一篇介紹了下單例模式,這一篇介紹一下工廠模式和抽象工廠模式,爲什麼把這兩個放在一起說,因爲我個人認爲他們兩個是有關聯的,簡單工廠模式被我看作是工廠

原创 js常用設計模式實現(一)單例模式

什麼是設計模式 設計模式是一種能夠被反覆使用,符合面向對象特性的代碼設計經驗的總結,合理的使用設計模式能夠讓你得代碼更容易維護和可靠設計模式的類型共分爲創建型模式,結構型模式,行爲型模式三種 創建型模式 創建型模式是對一個類的實例化過程進

原创 js堆,棧與隊列

棧的定義 棧是計算機科學中的一種抽象數據類型,只允許在有序的線性數據集合的一端(稱爲堆棧頂端,英語:top)進行加入數據(英語:push)和移除數據(英語:pop)的運算。因而按照後進先出(LIFO, Last In First Out)的

原创 js深入(四)萬臉懵圈的this指向

作爲一個js菜雞的我而言,在之前講到過那麼多的js鏈式查找機制,比如說原型鏈,作用域鏈等等,想當然的把這個機制帶入到了this指向上邊,結果就是這個this指向指的我萬臉懵逼(標題換字了,擔心被河蟹),在經過漫長的通(gou)俗(pi)易(

原创 js深入(三)作用域鏈與閉包

在之前我們根絕對象的原型說過了js的原型鏈,那麼同樣的js 萬物皆對象,函數也同樣存在這麼一個鏈式的關係,就是函數的作用域鏈 作用域鏈 首先先來回顧一下之前講到的原型鏈的尋找機制,就是實例會先從本身開始找,沒有的話會一級一級的網上翻,直到頂

原创 js深入(二)函數的執行與上下文

這一篇簡單的說一說js的函數執行和js的執行上下文的概念,之前在我的博客裏邊也提到過js的堆棧隊列,這一篇打算單獨的拿出來說一說 是什麼是js的執行上下文 一段可以執行的代碼在被執行的時候,會創建一個函數的執行上下文 執行上下文裏邊有三個重

原创 js深入(一)從原型理解原型鏈

構造函數創建一個對象 function Person() { } var person = new Person(); person.name = 'zhangsan'; console.log(person.name) // zhang