博客 / 列表

小謳 - 手寫一個Virtual DOM及源碼解析

關注前端小謳,閲讀更多原創技術文章 Virtual DOM是當今主流框架普遍採用的提高 web 頁面性能的方案,其原理是: 1.把真實的 DOM 樹轉換成 js 對象(虛擬 DOM) 2.數據更新時生成新的 js 對象(新的虛擬 DOM) 3.二者比對後僅對發生變化的數據進行更新 完整代碼參考 → js 對象模擬 DOM 樹 假設有如下 ht

vue.js , 虛擬dom , virtual-dom , 前端 , Javascript

小謳 - 《javascript高級程序設計》學習筆記 | 11.1.異步編程

關注前端小謳,閲讀更多原創技術文章 異步編程 ES6 新增了正式的Promise引用類型,支持更優雅地定義和組織異步邏輯 接下來的幾個版本,使用async和await關鍵字定義異步函數的機制 相關代碼 → 同步與異步 同步行為在內存中順序執行處理器指令 每條指令都在單個線程中按出現順序執行 每條指令執行後,都可以推斷出程序的狀態,並立即獲得存儲在系統本地(

settimeout , 異步編程 , 前端 , Javascript

小謳 - 《javascript高級程序設計》學習筆記 | 10.9-10.11.函數內部

關注前端小謳,閲讀更多原創技術文章 相關代碼 → 10.9 函數內部 ES5 中函數內部有 2 個特殊對象 arguments 和 this,1 個內部屬性 caller ES6 新增new.target屬性 10.9.1 arguments arguments是一個類數組對象,包含調用函數時傳入的所有參數 只有以funciton關鍵字定義函數時才會有arguments對象(

call , arguments , apply , this , Javascript

小謳 - 《javascript高級程序設計》學習筆記 | 8.2.創建對象

關注前端小謳,閲讀更多原創技術文章 創建對象 創建單個對象:Object 構造函數 和 對象字面量 缺點:使用一個接口創建很多對象,產生大量重複代碼 相關代碼 → 工廠模式 抽象創建特定對象的過程,按照特定接口創建對象 function createPerson(name, age, job) { var o = new Object() o.name = name

面向對象編程 , object , 前端 , Javascript

小謳 - 《javascript高級程序設計》學習筆記 | 8.1.理解對象

關注前端小謳,閲讀更多原創技術文章 理解對象 ECMAScript 定義對象:無序屬性的集合(一組沒有特定順序的值),其屬性可以包含基本值、對象、函數,整個對象可以想象成一個散列表 相關代碼 → 創建自定義對象的 2 種方法:Object 構造函數和對象字面量: 用構造函數創建一個 Object 實例,然後為它添加屬性和方法 var person = n

面向對象編程 , object , 前端 , Javascript

小謳 - 《javascript高級程序設計》學習筆記 | 7.3.生成器

關注前端小謳,閲讀更多原創技術文章 生成器 ES6 新增的結構,可以在一個函數塊內暫停和恢復代碼執行,可以自定義迭代器和實現協程 相關代碼 → 生成器基礎 生成器的形式是一個函數,函數名稱前加一個星號* 可以定義函數的地方,都可以定義生成器(箭頭函數除外) function* generatorFn() {} // 生成器函數聲明 let gfn = function* ()

yield , generator , 生成器 , 前端 , Javascript

小謳 - 小程序重構 [cnode社區]:mpvue + 開源api,現已上線!

歡迎關注前端小謳的github,閲讀更多原創技術文章 閒暇時光表浪費,由於技術棧一直用的vue,因此用 mpVue 開發了小程序版本的 cnode 社區,api 也都是官網開源的。有人會問 “mpvue不是已經停止維護了嘛?”——的確是的,而且使用起來有很有坑。但這是我第一次寫小程序,找個最相近的語言最適合——無論選擇哪種技術棧,產品要完整做出來才行。小程序現已上線,後續還將逐步嘗試在tar

vue.js , node.js , 小程序 , mpvue , Javascript

小謳 - 解決 mpvue 經典 bug:同路由切換時,上次的數據會保留

關注前端小謳,閲讀更多原創技術文章 由於一直在用vue技術棧,因此初次開發小程序嘗試使用【mpvue】。儘管聽聞框架已停止維護,為了上手迅速,不顧可能存在的眾多bug,毅然用起來。 果不其然,一個大bug出現了:同一路由切換時,上一次的頁面數據會保留 項目實戰bug:mpvue重構cnode社區 github用户已在mpvue的issues給出相關原因: 參考眾多答案後,用“

vue.js , 小程序 , mpvue , 前端 , Javascript