原创 web頁面性能優化方法總結

最近老大給我佈置了一道作業,讓我去想想有哪些辦法可以優化web頁面的性能,回頭一看,做了這麼多年的前端開發,多少還是知道一些常規的性能優化策略,以下是我對性能優化的一個總結,共13點,如果描述錯誤,歡迎指正: 1. 使用cdn 對於需要展

原创 解決eslint檢查報Definition for rule 'vue/component-definition-name-casing' was not found

在使用eslint檢查使用vue-property-decorator來輔助編寫typescript的時候,出現了一個問題:如下 1:1 error Definition for rule 'vue/component-defi

原创 用js實現二叉樹,完成深度遍歷

最近研究了一下二叉樹,閒來沒事用js自己動手實現了一遍,歡迎各位大牛拍磚  一個二叉樹數據結構的屬性一般包含:節點及節點的值(代碼中的node);節點之間的邊關係(連接關係,代碼中的line) // 二叉樹對象實現 functi

原创 js實現二維數組元素兩兩組合

  代碼實現:給一個數組如:[[“a”,”b”,”c”],[“d”,”e”],…..]得到[ad,ae,bd,be,cd,ce] (function () { let a = [[1, 2, 3, 4, 5], ["a",

原创 徹底解決跳臺梯問題

臺梯問題大致描述是這樣的: n階樓梯,一次最多可跳x次(1、2、3、4、、x都可以),有多少種可能?爲了降低難度,我們令n等於1 這類問題我們一時半會可能找不到頭緒,這個時候,不妨先列舉出一些例子,在本題中,我們可以先算出m等於1、2、3

原创 函數節流和函數防抖

函數節流 概念:在規定的時間段內(例如1000ms),即使事件觸發了很多次,都只執行一次對應的任務。 栗子:在我們進入地鐵站時通過閘機,每隔3秒內只允許一個人通過,即使多個人同時刷卡,也只允許一個人通過。 運用場景:如果我們在改變瀏覽器的

原创 js實現兩個字符串數字相加(大數相加)

最近遇到一個問題,如果兩個字符串中保存的是數字,要把比較大的兩個數字相加起來(比如:4121323422+9387864261),實現代碼如下,在補零的過程比較複雜,如果有更簡單的辦法,歡迎留言告訴我,謝謝! function sub(

原创 js查找兩個字符串中最長的公共子串

function find(str1,str2){ //創建一個二維數組 let temp = new Array() let max = 0 let index = null for (let i = 0; i <

原创 用單例模式實現一個前端存儲對象storage

在設計模式中,有一種特別的模式,叫單例模式,單例模式是指:通過調用同一個方法生成的對象永遠只有一個(多次調用生成的對象是相同)。下面是實現的一個存儲數據的單例對象的栗子。 // 實現一個單例模式模式的storage function S

原创 javascript實現遞歸地拉平數組

題目:遞歸實現一個函數flatten(arr) 描述:遞歸拉平數組 輸入:array 輸出:拉平的數組 栗子:flatten(a([1,[2,[3,[4,5],6],7]]))   //[1, 2, 3, 4, 5, 6] var x=

原创 解決js計算0.1+0.2 !==0.3

經常做用js數據運算的同學應該瞭解,在js中,0.1+0.2不會等於0.3,而是等於: 我一開始發現這個bug的時候也覺得很奇怪,那怎麼去解決這個bug,讓0.1+0.2 最後能得到0.3呢? 方法一 最簡單的就是先把0.1和0.2換成

原创 一道面試題

function doSomeThing(){ const obj = { selector: { to: { toutiao: "FE Coder"} }, target: [1, 2, { name: 'byted'}]}

原创 JavaScript實現快速排序代碼

快速排序的算法我就不多說了,網上多的是,其主要的思路就是分而治之,最開始找一個數a,將數組中所有大於a的數都移動到a的右邊,小於a的數都移動到a的左邊,再從a的位置將數組一分爲二,繼續迭代執行上面的操作。talk is cheap,sho

原创 javascript解決揹包問題

揹包問題: 給定 n 種物品和一個容量爲 C 的揹包,物品 i 的重量是 w[i],其價值爲 v[i] 。 問:應該如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大? 分析: n種物品,每一種要麼放入揹包,要麼不放(在揹包裝不下的

原创 用javascript讓(a==1&&a==2&&a==3)爲true

這是一道經典的題目,考察的主要是js的類型隱式轉換。 分析 一拿到這道題,我們先考慮到的應該是a應該是什麼類型,在a==**的時候發生了什麼?再去考慮a應該等於什麼。 首先,如果a是一個對象,那在執行a==的時候首先會去先執行valueO