原创 async/await的原理以及和promise的區別

一、async/await的基礎使用 async/await是一套關於異步的解決方案。下面是它的基本使用。 注意!! 但是使用async/await的時候,無法捕獲錯誤,需要通過try/catch來捕獲。 async返回promi

原创 ajax和fetch、axios的區別以及axios原理

從原生的XHR到jquery ajax,再到現在的axios和fetch,究竟發生了哪些變化,我們接下來就來探討一下。 jquery ajax 它是對原生XHR的封裝,隨着vue、react框架的興起,很多情況下我們只需使用aja

原创 promise的實現

1.promise的聲明 首先promise是一個類,那麼就用 class聲明。 由於new promise((resolve,reject)=>{}),所以傳入一個參數,我們叫它executor,傳入立即執行。 resolve

原创 vuex的原理

1.vuex的作用 vuex是專門爲Vuejs應用程序設計的狀態管理工具。其實是集中的數據管理倉庫。相當於數據庫mongoDB等,任何組件都可以存取倉庫中的數據。 vuex的組成部分: state:是存儲的基本數據。 mutat

原创 vue的數組監聽

Vue中對數據的監聽主要依靠Object.defineProperty來實現的,這種實現主要針對key/value形式的對象,對數組中的值的變化是無能爲力的,definrProperty是無法監聽數組長度的變化,監聽索引的代價也很

原创 javascript高級程序設計總結二

一、面向對象的程序設計 1. 屬性類型 // 1.數據屬性 object.defineproperty(屬相所在的對象,屬性名,(4種)) let person = {}; Object.definePropert

原创 TCP爲什麼三次握手又爲什麼四次揮手

結論 爲了實現可靠的數據傳輸,TCP協議的通信雙方,都必須維護一個序列號,以標識發送出去數據包,有哪些已經被對方收到。三次握手的過程就是雙方相互告知序列號的起始值,並確認對方已經收到起始值的必經步驟。 如果只有兩次,至多隻有連接發

原创 javascript-ES6一

let、var、const的區別 let const沒有變量提升 有着嚴格的作用域 同一個作用域下不能重複定義同一個名稱 類 ES6中的類,其實是函數的一種。class Person{…}做了什麼呢? 創建一個名爲Person的

原创 leaflet.js學習錯誤總結

1.右擊菜單出錯 *出錯內容:創建一個右擊事件,彈不出來右擊菜單 *解決辦法:需要在marker中綁定classname markOptions.icon.options.className = '右擊類名' 2.怎麼通過右上角

原创 前端面試代碼總結中

快速排序 function quickSort(arr){ if(arr.length<=1){ return arr; } var midindex=Math.floor(arr.length/2); var midval

原创 webpack、es6和commomJS之間的關係

babel是將es6轉爲es5,而webpack從名字也能看出來,是一個打包工具,根據文件之間的依賴關係,將文件進行打包。 在這裏理清一下以上幾個概念以及他們之間的關係。 es6、babel和commonJS的關係 現在的瀏覽器很

原创 vdom的原理

結論 vue中vdom渲染頁面的過程:將<template>模板,通過render渲染函數(createElement())得到虛擬的DOM樹,通過diff算法進行新舊虛擬節點的比較,再通過patch更新到真實的dom上實現視圖的

原创 高性能javascript總結

一、加載和執行 問題起源 多數瀏覽器使用單線程來處理用戶界面UI刷新和Javascript腳本的執行,所以同一時刻只能做一件事。javascript腳本霸道地讓頁面等待自己執行完畢。 解決辦法 html4中的規範指出<script

原创 javascript語言精粹總結

一、javascript語法 Number 它在內部被表示爲64位的浮點數,而且它沒有分離出整數,1.0===1.好處是完全避免短整型溢出的問題。 string 字符串字面量可以包含在一對單引號或者雙引號中,javascript

原创 javascript---ES6 二

map的認識 如果鍵名相等,則後面的會覆蓋前面的。如果鍵名是NaN也是會覆蓋。 'use strict' var obj={ 'name':'leo',//map的key必須是字符串 'qq':'1405211', 'ful