原创 JavaScript數據結構之二叉樹常見算法

一、二叉樹層級遍歷 // 初始化二叉樹 function TreeNode(val){ this.val = val; this.left = this.right =null; }

原创 手寫Promise.all()方法

Promise.all(iterable) 方法返回一個 Promise 實例,此實例在 iterable 參數內所有的 promise 都“完成(resolved)”或參數中不包含 promise 時回調完成(resolve);如果參數

原创 JavaScript學習筆記之Promise(承諾)實戰

一、爲什麼會出現promise? 在實際開發過程中,經常會遇到某些耗時的js操作。其中,包含異步操作也包含同步操作,但是他們都不是立馬可以得到結果的。此時,一般會爲其指定一個回調函數,即事先規定,一旦他們運行結束,應該會調用那些函數。 J

原创 JS事件代理(事件委託)

基本概念 事件代理,又稱之爲事件委託。是js中常用綁定事件的常用技巧。顧名思義:“事件代理”就是把原本需要綁定在子元素的響應事件(click、keydown.....)委託給父元素,讓父元素擔當事件監聽的職務。事件代理的原理就是DOM元素

原创 ES6與ES5部分對比

一、常量 // 常量ES5寫法 // 爲對象增加屬性 Object.defineProperty(window,"PI",{ value: 3.1415926, wirtable:

原创 Vue.proxyTable是什麼?

在vue項目中的config文件夾下的index文件中有一個proxyTable節點。 proxyTable是vue-cli腳手架在開發模式下,爲我們提供的一個跨域的代理中轉服務器服務。它是基於http-proxy-middleware

原创 vue中v-for和v-if優先級

v-for和v-if同時使用,有一個先後運行的優先級,v-for比v-if優先級更高,這就說明在v-for每次的循環賦值中每一次調用v-if的判斷,所以不推薦v-if和v-for在同一個標籤中同時使用。 解決方法:1、ul和li搭配使用,

原创 forEach循環裏頭使用splice()遇到的坑

1、循環arr數組,將item爲1的元素從數組中刪除。 let arr = [1,1,2]; arr.forEach((item,index,arr) =>{ if(item == 1 ) { arr.splice(index

原创 cookie和session的區別

cookie機制、session機制 cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在服務器端保持狀態的方案。 1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。 2、cookie不是

原创 fetch源碼分析學習筆記

// 一些功能的檢測 var support = { searchParams: 'URLSearchParams' in self, //queryString處理函數 iterable: 'Symbol' in s

原创 輸入一個數組若滿足a[i]+a[j]=a[k],返回true。

function search(arr) { for(var i = 0; i < arr.length; i++){ var left = arr[i]; for(var

原创 ES6新特性

如上圖所示,ES6體系目前涵蓋了ES2015、ES2016、ES2017、ES2018、ES2019。 另需注意的是ES6更新的內容主要分爲以下幾點: 1、表達式:聲明、解構賦值; 2、內置對象:字符串擴展、數值擴展、對象擴展、數組擴展

原创 Electron學習筆記及實戰

一、什麼是Electron? 使用js、html和css構建跨平臺的桌面應用 基於Chromium瀏覽器和Node.js 開源項目 跨平臺:生成兼容Mac、Windows和Linux 二、誰在使用? Visual Studio Code

原创 Sass學習筆記

一、sass是什麼? 傳統的css是一種單純的描述性樣式文件,沒有變量,也沒有條件語句。在開發過程中,難免有些麻煩,因此有了CSS預處理器,Scss便是其中之一。 二、基本用法。 【1】定義變量 sass允許使用變量,所有變量以$開頭。

原创 FOO和Foo.getName

function Foo(){ getName = function() { console.log(1); }; return this; } F