原创 JS 中的函數式 - 常用概念

一、柯里化 - currying 柯里化的意思是將一個多元函數,轉換成一個依次調用的單元函數,用表達式表示: f(a,b,c) → f(a)(b)(c)    核心代碼實現: export function curry(fn) {

原创 JS 中的模塊化 Module

零、參考資料 深入分析JavaScript模塊循環引用 Module 的加載實現 從模塊的循環加載看ESM與CJS 理解 amd, cmd, commonjs, esm, umd 模塊化 一、早期的實踐 - CommonJS 族 No

原创 solid.js 的響應核心分析

零、參考資料 1. SolidJS 是如何實現響應式的? 一、雙劍之 createSignal 用法: // js const [value, setValue] = createSignal(1); // html-template

原创 多媒體基礎

零、參考資料 1. 多媒體前端書冊 2. video 標籤能幹些什麼 一、視頻 視頻的本質很簡單,就是快速播放的圖片 (一)幀 幀:一幀即一幅靜止的圖像 幀率(fps):每秒顯示的圖片數。幀率越大,畫面越流暢;幀率越小,畫面越卡 12

原创 Stream 的基礎

零、參考資料 https://www.zhihu.com/question/27996269 https://blog.csdn.net/weixin_43865875/article/details/117732871 https:

原创 JS 中的二進制 - Blob 與 ArrayBuffer

零、參考資料 《圖解 + 實戰》File、Blob、TypedArray、DataView JavaScript也有操作二進制的一天:聊ArrayBuffer和Blob 聊聊JS的二進制家族:Blob、ArrayBuffer和Buffer

原创 Vue 3 中的 jsx 實踐

一、起因  template 的寫法不太靈活,數據和模版都放在一起,不能拼接; 如果拆太碎,每個碎片組件都得寫一堆 props/emit 才能確保通信的完整性,太麻煩; 如果寫在一個文件中,模版上的判斷邏輯 (v-if) 又得一堆; 二

原创 WEB-RTC 前端工作流整理 WEB-RTC 基礎概念和架構

一、總結 二、流程詳解 總流程可以參照 WEB-RTC 基礎概念和架構 的第二部分,本篇是對這個流程的 FE 代碼的一個梳理: (一) 前期準備 首先發起端(以下統稱 Client A 或者 A)通過 mediaDevices 原生接口

原创 React Hook 的閉包陷阱

參考文章 1. 從react hooks“閉包陷阱”切入,淺談react hooks 2. 一文講透 React Hooks 閉包陷阱   Hooks   Hooks 是 react 自 16.8 引入的新特性,使得開發者在擺脫 class

原创 Vue 3.0 reactive/effect

reactive.js: import { isObject } from "../utils"; import { track, trigger } from "./effect"; export function reactive(

原创 WEB-RTC 基礎概念和架構

參考文章: WebRTC簡介; 從0搭建一個WebRTC,實現多房間多對多通話,並實現屏幕錄製; 架構: 經典三層結構: Web app 層(應用層):Web開發者開發的程序,Web開發者可以基於集成WebRTC的瀏覽器提供

原创 利用 Promise 進行驗證的一些實踐

一、業務場景   衆所周知,在客戶端中,表單是一個相當重要的內容。隨着技術的發展,在提交表單數據的時候,某些表單驗證環節會放在前端進行。因此,我們無可避免的要寫一堆 if 來處理,同時大多數的時候,如果需要提醒某些錯誤信息時,需要加入 el

原创 vue 與 jsx

零、序言   6 月的時候冒出了用 jsx 的來寫 vue 項目的念頭,以回憶回憶放下好長一段時間的 jsx,奈何項目時間卡得很緊,一些簡單的頁面的還可以寫寫,遇到一些資料少的問題時就很頭疼,所以複雜頁面仍然採用 <template />

原创 常用的時間處理(Date => String)

var timer = { /** * 補足 0 * @param { Number | String } num * @returns { String } */ padLeft

原创 js - 函數的柯里化(Currying)

零、資料   1. 詳解JS函數柯里化 ;   2. 函數式編的JS: curry ;   一、基礎概念   維基百科上說道:柯里化,英語:Currying(果然是滿滿的英譯中的既視感),是把接受多個參數的函數變換成接受一個單一參數(最