原创 Prettier 代碼格式化工具

Prettier 是一個代碼格式化工具,它可以支持 js/jsx/ts/flow/json/css/less/scss 等文件格式。 爲什麼要使用 Prettier? 用來替代 lint 中的一些場景,比如說分號/tab縮進/空格/引號,

原创 最全45種設計模式

設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的面向對象的軟件開發人員所採用。設計模式是軟件開發人員在軟件開發過程中面臨的一般問題的解決方案。這些解決方案是衆多軟件開發人員經過相當長的一段時間的試驗和錯誤總結出來的

原创 JS引擎是如何工作的?

JS 引擎是一個可以編譯、解釋我們的JS代碼強大的組織。最受歡迎的JS 引擎是V8,由 Google Chrome 和 Node.j s使用,SpiderMonkey 用於Firefox,以及Safari/WebKit使用的 JavaSc

原创 理解 JavaScript 中的執行上下文

什麼是執行上下文? 執行上下文是執行 JavaScript 代碼的環境。每當 Javascript 代碼運行的時候,它都是在執行上下文中運行。 執行上下文的類型 JavaScript 中有三種執行上下文類型: 全局執行上下文 — 這是默認

原创 Linux 常用命令

一、Linux 內核      Linux 是一套開源的類 Unix 操作系統,是一個基於Posix和Unix的多用戶、多任務、支持多線程和多CPU的,用C語言寫成的操作系統。 目前成型的系統有如下: 手機:Android、ios(只能算

原创 主流瀏覽器內核和引擎

一、主流瀏覽器內核和引擎 瀏覽器 內核 引擎 IE Trident   Chrome Webkit(以前)/ Blink(現在) V8 Safari Webkit JavaScriptCore Firefox Gecko SpiderMo

原创 Moment.js 日期處理類庫

以下筆記針對 v2.10.6 版本 一、安裝     npm install moment —save 二、Moment 漢化    1. 全局漢化        moment.locale('zh-cn')    2. 局部漢化   

原创 從 Node8 升級到 Node12 之採坑

之前版本是 Node8,感覺版本有點低,然後就升級到了最新版本 v12.4.0。升級完之後,之前安裝的各種 npm 包報錯。下面我們娓娓道來。 問題一:項目啓動時 node-sass 報錯 報錯的內容是:以前裝的 node-sass 跟

原创 Mac 全局安裝 webpack 報錯權限不足解決方法

今天在 Mac 上全局安裝 webpack、webpack-dev-server 時,雖然命令前都加了 sudo,安裝時還是報了權限不足的錯誤:   解決方法如下: sudo npm install webpack -g --unsaf

原创 微信小程序轉支付寶小程序之 wx2ali 踩坑

      公司業務需要,要把本來的微信小程序移植到支付寶小程序,網上搜了一下,也沒有很成熟的方案,用的最多的就是用 wx2ali 這個工具。 這個工具也只能把微信小程序文件的後綴名替換成支付寶小程序文件的後綴名,還有把絕大部分原生API

原创 設計無限滾動下拉加載,實踐高性能頁面真諦

設計無限滾動下拉加載,實踐高性能頁面真諦 UX Planet論壇上有過這麼一篇熱門文章: Infinite Scrolling Best Practices,它從UX角度分析了無限滾動加載的設計實踐。 無限滾動加載在互聯網上到處都有應用:

原创 仿“今日頭條”效果的js無限滾動加載

效果 《今日頭條》網頁裏頁面向下滾動時,新聞會不斷的追加。查看了 dom 元素,他們是把新請求到的新聞不斷地追加到 ul 裏。 思路 1. 判斷網頁是否滾動到了底部,並且當前沒有請求在執行 2. 請求數據 3. 追加數據 細節 1. 可以

原创 前端路由原理解析和實現

在單頁應用如此流行的今天,曾經令人驚歎的前端路由已經成爲各大框架的基礎標配,每個框架都提供了強大的路由功能,導致路由實現變的複雜。想要搞懂路由內部實現還是有些困難的,但是如果只想瞭解路由實現基本原理還是比較簡單的。本文針對前端路由主流的

原创 Selection對象

被選擇文本示例代碼 <p>發大幅<strong>大大泡泡糖</strong>度那附近那<strong>小頭爸爸</strong>多好撒節點是的是</p> 以下幾個屬性和方法兼容性良好,而且對文本和輸入框都有效。 var selObj

原创 全局配置ESLint之React

一、前言 ESLint 是在 ECMAScript/JavaScript 代碼中識別和報告模式匹配的工具,它的目標是保證代碼的一致性和避免錯誤。在許多方面,它和 JSLint、JSHint 相似,除了少數的例外: ESLint 使用 Es