原创 js數據結構之樹(tree)

典型的:HTML 就是一個樹結構 (一)二叉樹 特點: 1. 每一個父結點都有兩個子結點 2. 左側子節點存儲比父結點小的值,右側子節點存儲比父結點大的值 操作:增刪改查 代碼: // 定義Node節點 class Nod

原创 js 數據結構算法 --- 圖

用途:可以用來做地圖、還可以用來模擬社交 (一)圖的基本概念: 有向圖標明瞭連接方向,不能逆着方向 無向圖只表明鏈接關係 沒有方向,只要連接就可以通 (二)圖的表示方式 1. 鄰接矩陣   1 表示鏈接 0表示無連接 對角線永遠是0

原创 js數據結構和算法-----鏈表

鏈表像是一個火車,每一個 node 就像是一節火車廂,它不僅要攜帶自己的信息 (item),還要與下一節火車廂相連(next) next指向下一個節點,下一個節點的內容 (一)鏈表的操作 1. 插入元素 insert 2. 尾部添加元素

原创 有效的括號 leetcode

這道題感覺挺有意思,之前想了很多種方法,但是都很麻煩 看到一道很巧妙的解法 碼一下~ 思路:把前括號([{ 使用 Map 與後括號 映射起來,循環輸入的字符串,如果是前括號,放入棧中,如果是後括號,看是否與棧頂的前括號匹配是一對,如果是

原创 js 實現 filter

Array.prototype.filter = function (callback) { if (!(callback instanceof Function)) { throw new Error('f

原创 頁面性能工具:Performance?

(一)打開Performance 標籤,最終效果如下圖所示: 上圖區域 2 和區域 3,有兩個按鈕,上面那個黑色按鈕是用來記錄交互階段性能數據的,下面那個帶箭頭的圓圈形按鈕用來記錄加載階段的性能數據。 (二)報告頁 報告頁面主要分爲三

原创 js 最大公約數 最小公倍數

1. 兩個數的最大公因數 // 求兩個數的最大公約數 輾轉相除法 // 最壞的結果 兩個數的最大公約數是1 function gcd (a, b) { if (b === 0) { retur

原创 滿足條件的元素索引數組

var indexArr = [] var index = 0 while (index <= arr.length - 1) { var index = arr.indexOf(0, ind

原创 二分查找法(數組相關)

背景需求:給定一個有序數組(不是有序數組不能用二分查找法)以及一個值,如果查找成功返回目標的索引值;否則返回-1。當待搜索的集合是相對靜態的數據集時,此時使用二分查找是最好的選擇。 主要考慮的點:邊界值的處理 思路:開始時,先找出有序集合

原创 justify-content 上下貼頂、底對齊

左面是一個圖片,在移動端圖片的高度是隨着手機屏幕大小適配的,高度不一定,無論在什麼屏幕下 右側上面要與圖片頂端對齊,右側下面要與圖片底部對齊,右側外部整體設置: display: flex; flex-direction: colum

原创 提升webpack效率

1. webpack --watch "scripts": { "build": "webpack --watch" }, 在webpack後添加--watch npm run build 的時候就可以實時監聽改動,自動打包

原创 Map 和 WeakMap

在對象中,如果鍵值設置爲了數字,對象會自動把數字轉換爲字符串 let obj = { 1: 'hhh', '1': 'bbb' } console.log(obj) 相當於創建了兩個鍵值是字符串1

原创 用模塊封裝代碼

(一)模塊( Modules )是使用不同方式加載的 JS 文件 1. 模塊代碼自動運行在嚴格模式下,並且沒有任何辦法跳出嚴格模式 2. 在模塊的頂級作用域創建的變量,不會被自動添加到共享的全局作用域,它們只會在模塊頂級作用域的內部存在;

原创 處理項目中的模版文件

安裝 html-loader cnpm i html-loader -D 配置 { test:/\.html$/, loader: ['html-loader'] } 下面模擬一個完整的vue打包 項目目錄:   lay

原创 webpack之SourceMap

(一)什麼是sourceMap sourceMap其實是一個映射關係,比如打包後的js文件(如dist目錄下main.js第78行報錯了),sourceMap能夠找到(dist目錄下main.js第78行)對應的打包前的源文件(是哪個文件