@Javascript

動態 列表
@johanazhu

從淺入深瞭解Koa2源碼

在前文我們介紹過什麼是 Koa2 的基礎 簡單回顧下 什麼是 koa2 NodeJS 的 web 開發框架 Koa 可被視為 nodejs 的 HTTP 模塊的抽象 源碼重點 中間件機制 洋葱模型 compose 源碼結構 Koa2 的源碼地址:https://github.com/koajs/koa 其中 lib 為其源碼 可以看出,只有四個文件:application.js、cont

johanazhu 頭像

@johanazhu

昵稱 山頭人漢波

@johanazhu

一步一步來:手寫Koa2

之前講過Koa2從零到腳手架,以及從淺入深瞭解Koa2源碼 這篇文章講解如何手寫一個 Koa2 Step 1:封裝 HTTP 服務和創建 Koa 構造函數 之前閲讀 Koa2 的源碼得知, Koa 的服務應用是基於 Node 原生的 HTTP 模塊,對其進行封裝形成的,我們先用原生 Node 實現 HTTP 服務 const http = require('http') const server

johanazhu 頭像

@johanazhu

昵稱 山頭人漢波

@wojiaocuisite

萬物皆空之 JavaScript 原型

ES6帶來了太多的語法糖,其中箭頭函數掩蓋了 this 的神妙,而 class 也掩蓋了本文要長篇談論的 原型。 最近,我重寫了這篇文章,通過本文,你將可以學到: 1. 如何用 ES5 模擬類; 2. 理解 prototype 和 __proto__; 3. 理解原型鏈和原型繼承; 4. 更深入地瞭解 JavaScript 這門語言。 引入:普通對象與函數對象 在 JavaScript 中,一直

wojiaocuisite 頭像

@wojiaocuisite

昵稱 我叫崔斯特

@johanazhu

移動端法門:自適應方案和高清方案

筆者從畢業開始做前端到現在,90% 的項目是移動端打交道,所以當簡歷上寫了“移動H5”幾個字時,必會被問到自適應方案與高清方案 ”自適應“講的是一套UI(例如750*1334),在多端下展示近乎一樣的效果;而”高清“是因為 DPR 提升而所做的各種精度適配 這篇文章講講筆者理解的自適應方案和高清方案 先説結論 自適應方案 rem 適配思路 選擇一

johanazhu 頭像

@johanazhu

昵稱 山頭人漢波

@zhuyunbo

瀏覽器存儲及JavaScript重寫LocalStorage方法實現瀏覽器本地存儲設置時間問題

最近遇到了用户登錄信息本地存儲的問題,所以需要對瀏覽器的localStorage的存儲時間進行設置,因此重寫localStorage方法並在此記錄。 瀏覽器幾個存儲總結: localStorage保存的數據(大小5M左右),以“鍵值對”的形式長期存在。也就是説,每一項數據都有一個鍵名和對應的值,所有的數據都是以文本格式保存。保存的數據沒有過期時間,直到手動去除。 sessionStorage

zhuyunbo 頭像

@zhuyunbo

昵稱 很白的小白

@jerryc

如何構建可控,可靠,可擴展的 PWA 應用

概述 PWA (Progressive Web App)指的是使用指定技術和標準模式來開發的 Web 應用,讓 Web 應用具有原生應用的特性和體驗。比如我們覺得本地應用使用便捷,響應速度更加快等。 PWA 由 Google 於 2016 年提出,於 2017 年正式技術落地,並在 2018 年迎來重大突破,全球頂級的瀏覽器廠商,Google、Microsoft、Apple 已經全數宣佈支持 PW

jerryc 頭像

@jerryc

昵稱 JerryC

@laomao_5902e12974409

JavaScript閉包

本文將帶你用正確姿勢看待JavaScript閉包。 在 JavaScript 中閉包描述的是 function 中 外層作用域的變量 被內層作用域 引用的場景,閉包的結構為 內層作用域 保存了 外層作用域的變量。 要理解閉包,首先要知道 JS詞法作用域 是如何工作的。 JS詞法作用域(lexical scoping) 來看這段代碼: let name = 'John'; function gre

laomao_5902e12974409 頭像

@laomao_5902e12974409

昵稱 來了老弟

@invalidnull

微信小程序開發系列 (三) :微信小程序如何響應用户點擊事件和微信平台 API 的使用方法介紹

筆者由於工作需要,曾經參加過一個微信小程序同 SAP 系統集成的項目,因此從零開始學習了微信小程序的開發知識。這裏通過系列文章把自己所學分享出來,希望對相關學習者有所幫助。 本教程前面兩篇文章: 微信小程序開發系列 (一) :開發環境搭建和微信小程序的視圖設計與開發 微信小程序開發系列 (二) :微信小程序的單步調試和控制器實現步驟概述 通過本教程前面兩篇文章的介紹,大家對微信小程序的視圖

invalidnull 頭像

@invalidnull

昵稱 註銷

@lewyon

javaScript深拷貝和淺拷貝簡單梳理

在瞭解深拷貝和淺拷貝之前,我們先梳理一下: JavaScript中,分為基本數據類型(原始值)和複雜類型(對象),同時它們各自的數據類型細分下又有好幾種數據類型 基本數據類型 數字Number 字符串String 布爾Boolean Null Undefined Symbols BigInt 基本數據類型在內存當中,是存儲在棧Stack 在數據結構當中 棧在內存上的分配的空間生命週期很短,當變

lewyon 頭像

@lewyon

昵稱 程序猿布歐

@lewyon

javaScript中Number數字類型方法入門

前言 Number和Math都屬於JavaScript中的內置對象,Number數字類型作為基礎數據類型,我們在開發過程中會經常用到,包括數字精度的格式化,還有字符串轉換成數字等操作。 Number數字 自帶屬性值 Number.EPSILON 兩個可表示(representable)數之間的最小間隔。 Number.MAX_SAFE_INTEGER JavaScript 中最大的安全整數 (

lewyon 頭像

@lewyon

昵稱 程序猿布歐

@aran_tu

5 張彈珠圖徹底弄清 RxJS 的拉平策略:mergeMap、switchMap、concatMap、exhaustMap

RxJS 的操作符理解起來確實比較複雜,比如最常用的幾種 map 操作符,本篇就來使勁衝一衝它們!! 原創文章,非商業轉載請説名出處 map 操作想必大家一定不陌生: const { of } = Rx; const { map } = RxOperators; const namesObservable = of('A', 'B'); namesObservable.pipe(

aran_tu 頭像

@aran_tu

昵稱 掘金安東尼

@snowwolfarden

Day 56/100 AngularJS 依賴注入

(一)需求 被問到AngularJS依賴注入的原理時,發現自己掌握的不好,於是總結記錄下。 (二)依賴注入介紹 1、為什麼要有依賴注入? 減少代碼之間的耦合度,使代碼有很強的可擴展性。 模板功能強大豐富,並且是聲明式的,自帶了豐富的Angular指令; 是一個比較完善的前端MVC框架,包含模板,數據雙向綁定,路由,模塊化,服務,過濾器,依賴注入等所有功能; 依賴注入簡化了組件之間

snowwolfarden 頭像

@snowwolfarden

昵稱 SnowWolfArden

@qifengliao_5e7f5b20ee3bd

javascript中的esm是什麼?

esm是什麼? esm 是將 javascript 程序拆分成多個單獨模塊,並能按需導入的標準。和webpack,babel不同的是,esm 是 javascript 的標準功能,在瀏覽器端和 nodejs 中都已得到實現。使用 esm 的好處是瀏覽器可以最優化加載模塊,比使用庫更有效率。 esm 標準通過import, export語法實現模塊變量的導入和導出。 esm 模塊的特點 存在模塊

@lewyon

深度解析javaScript常見數據類型檢查校驗

前言 在JavaScript中,數據類型分為兩大類,一種是基礎數據類型,另一種則是複雜數據類型,又叫引用數據類型 基礎數據類型:數字Number 字符串String 布爾Boolean Null Undefined Symbols BigInt 引用數據類型:日期Dete,對象Object,數組Array,方法Function, 正則regex,帶鍵的集合:Maps, Sets, WeakM

lewyon 頭像

@lewyon

昵稱 程序猿布歐

@zhuyunbo

深入理解JavaScript之執行上下文、閉包

在理解閉包之前,需要先來了解幾個概念,上下文、作用域鏈、活動對象、變量對象: 上下文:函數的上下文決定了他們可以訪問哪些數據,以及他們的行為。全局上下文是最外層的上下文,當代碼執行流進入到函數時,函數的上下文被推到上下文棧上,當函數執行完之後,上下文棧會彈出該函數上下文。 作用域鏈:上下文中代碼執行的時候會創建作用域鏈,它決定了各級上下文中代碼訪問變量或函數的順序。代碼正在執行的上下文變量對

zhuyunbo 頭像

@zhuyunbo

昵稱 很白的小白

@invalidnull

使用 RxJS timeout 操作符給 Angular SSR 服務器端渲染模式下的 HTTP 請求添加超時機制

Angular Universal 是一個開源項目,擴展了 @angular/platform-server 的功能。 該項目使 Angular 中的服務器端渲染成為可能。 為了在服務器上渲染,Angular 使用 node.js 的 DOM 實現——domino. 對於每個 GET 請求,domino 都會創建一個類似的 Browser Document 對象。 在該對象上下文中,Angular

invalidnull 頭像

@invalidnull

昵稱 註銷

@invalidnull

Rxjs mergeMap 的使用場合

注意: flatMap 是 mergeMap 的別名。 如果一次只能激活一個內部訂閲,請使用 switchMap. 如果內部 observables 的發射和訂閲順序很重要,請使用 concatMap. 當需要展平內部 observable 但想要手動控制內部訂閲的數量時,是 mergeMap 極佳的使用場合。 例如,當使用 switchMap 時,每個內部訂閲在源發出時完成,即任意時間

invalidnull 頭像

@invalidnull

昵稱 註銷

@invalidnull

Rxjs map, mergeMap 和 switchMap 的區別和聯繫

map、mergeMap 和 switchMap 是 RxJS 中的三個主要運算符,在 SAP Spartacus 開發中有着廣泛的使用場景。 map map 是 Observables 中最常見的運算符。 它的作用與數組中的映射相對相似。 map 接收從 Observable 發出的每個值,對其執行操作並返回一個 Observable(因此 Observable 鏈可以繼續)。 把它想象成一個函

invalidnull 頭像

@invalidnull

昵稱 註銷

@icecreamlj

webpack dev server 與 hot module replace 提高開發效率

通過 webpack 命令編譯源代碼時,如果我們對源代碼進行了修改,需要重新執行命令才能看到編譯後的效果。 這樣在開發中非常的影響效率,如果存在一種方式,當文件被修改時,webpack 自動監聽重新編譯,並反饋給開發者,這樣就能更高效的進行開發。 watch 我們通過 webpack 執行命令時,編譯完成之後進程會停止,而 webpack --watch 編譯完成後,不會停止進程,並且當文件內容發

icecreamlj 頭像

@icecreamlj

昵稱 一顆冰淇淋

@invalidnull

rxjs Observable 設計原理背後的 Pull 和 Push 思路

Observables 顧名思義,是可以被觀察的事務。在 Rxjs 的上下文裏,Observable 會隨着時間的推移,在某個時間點產生數據。 Observables 可以: 不停地(永遠)產生值,比如 interval 操作符。 可以一次性生產價值,然後進入 complete 狀態。 可能會產生錯誤,然後進入 complete 狀態。 Observable 是一種異步事件的實現利器,例

invalidnull 頭像

@invalidnull

昵稱 註銷