原创 小程序性能優化要點

指標: 頁面是否能正常訪問?首次內容繪製(First Contentful Paint, FCP) 頁面內容是否有用?首次有效繪製(First Meaningful Paint,FMP) 頁面功能是否可用?可交互時間(Time to In

原创 Node require() 加載規則

核心模塊 http,fs 等直接返回模塊 / 開頭加載全局的文件,再加載文件夾 ./ 和 ../ 開頭先加載文件,再加載文件夾 非核心模塊,路徑裏也沒有 / ./ ../ 的則去 node_module 里加載文件夾 加載文件 X:X

原创 利用 Proxy API 實現一個簡易 MVVM

vue 3 使用了 proxy api,有些手癢,就弄一個簡單的結構玩玩吧。Proxy API 見 MDN Proxy 效果圖 思路 依賴收集:Mvvm 初始化時劫持數據,並設置觀察者 dep。模仿 vue 結構是在 get 時往觀察者

原创 爲啥 Redis 使用跳錶而不是紅黑樹

開發者所說,他爲何選用 skiplist The Skip list There are a few reasons: They are not very memory intensive. It's up to you basical

原创 websocket 建立過程以及數據幀分析

websocket 建立過程 客戶端請求 Connection: Upgrade 表示要升級協議 Upgrade: websocket 告訴服務器要升級爲 websocket 協議 Sec-WebSocket-Version: 13 表

原创 Link prefetch 預加載

面試時被問過 link prefetch,發現我還是對 HTML5 的內容有所小瞧,那就做一篇筆記吧。 什麼是預加載 藉助 MDN-Link prefetching FAQ 的描述 鏈接預取是一種瀏覽器機制,其利用瀏覽器空閒時間來下載或預

原创 【數組】283. 移動零

原題 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 示例: 輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 說明: 必須在原數組上操作,不能拷貝額外的數組。 儘量減少

原创 JS 怎麼做掉幀監測

寫作背景 今日逛 B 站,發現在彈幕大量涌出來的時候,做了掉幀監測,然後減少掉一些彈幕的出現。那麼筆者對 JS 怎麼做掉幀監測到的感興趣。 查了一下方法,還真有一個叫 Frame Timing API 的東西,還是草案,也不是 W3C 標準

原创 JS 深拷貝-策略模式實戰

分析 深拷貝函數也是一個老生常談的話題了,它的實現有很多函數庫的版本,例如 lodash 的 _.cloneDeep。 或者圖個省事就直接 JSON.parse(JSON.stringify()),當然這麼做有許多缺點,沒有考慮循環引用問題

原创 Mysql explain 語句詳解

explain 語句詳解 參考:https://segmentfault.com/a/1190000008131735 explain 寫在 select 前,如下 mysql> explain select * from user_inf

原创 一道類數組的面試題

問題 var obj = { 2: '3', 8: '9', length: 2, splice: Array.prototype.splice, push: Array.prototype.push } obj.pu

原创 vue packages version mismatch

$ npm start Vue packages version mismatch: - [email protected] - [email protected] vue 版本和 vue-template-compiler 的版本

原创 說說 vue 父子組件加載順序

面試提問:說說 vue 父子組件加載順序 這我知道答案 父 beforeCreate 父 created 父 beforeMount 子 beforeCreate 子 created 子 beforeMount 子 mounted 父 m

原创 2020 年我碰到的原型鏈的面試題.md

寫作背景 猛然間發現都需要在牛客網上視頻面試了。 好氣人呀,一週內面試筆者居然再原型鏈問題上被連續絆倒兩次,然後被判定爲 JS 基礎薄弱。真的好氣人呀,所以筆者研究了一下午的原型鏈,打算之後再也不會被這個絆倒,其遇到的題目和大家分享。 題目

原创 說說 flex-shrink 屬性的規則

問題 面試題:你能說說 flex-shrink 麼? 我們所知 flex 語法如下 flex: <flex-grow> <flex-shrink> <flex-basis> 並且可以有一些縮寫 flex: 1 # 等效於 flex: