原创 webpack大拷問

1 webpack與grunt、gulp的不同? 三者都是前端構建工具,grunt和gulp在早期比較流行,現在webpack相對來說比較主流,不過一些輕量化的任務還是會用gulp來處理,比如單獨打包CSS文件等。 grunt和g

原创 一圖看懂React diff

React 中最值得稱道的部分莫過於 Virtual DOM 與 diff 的完美結合,特別是其高效的 diff 算法,讓用戶可以無需顧忌性能問題而”任性自由”的刷新頁面,讓開發者也可以無需關心 Virtual DOM 背後的運

原创 垃圾回收算法對比

垃圾回收GC的全拼是 Garbage Collection 其在維基百科的定義是: 在計算機科學中,垃圾回收(英語:Garbage Collection,縮寫爲GC)是一種自動的內存管理機制。當一個電腦上的動態內存不再需要時,就應

原创 嘗試實現一個簡單的Promise

1 Promise 是一個異步操作返回的對象,用來傳遞異步操作的消息 2 根據自己對 Promise 的理解,實現一個Promise Promise 有三種狀態:Pending 初始態; Fulfilled 成功態; Reject

原创 認識並使用 Promise

1 什麼是Promise Promise 是一個異步操作返回的對象,用來傳遞異步操作的消息。 可以解決的問題: 解決了回調地獄問題,不會導致難以維護; 合併多個異步請求,節約時間。 Promise 有三種狀態: Pendin

原创 【JavaScript】第十二章 開發環境

關於開發環境 面試官放通過開發環境瞭解面試者的經驗 開發環境最能體現工作產出效率 會以聊天的形式爲主,而不是出具體的問題 IDE(開發工具,寫代碼的效率) Git(代碼版本管理,多人協作開發) JS模塊化 打包工具 上線回滾的

原创 【Algorithm】用JS刷劍指offer

1 二維數組的查找 題目描述 在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 題目分

原创 【Safety】簡介

XSS 涉及面試題:什麼是 XSS 攻擊?如何防範 XSS 攻擊?什麼是 CSP? XSS是什麼 XSS 簡單點來說,就是攻擊者想盡一切辦法將可執行的代碼注入到網頁中 XSS分類邊界 XSS 可以分爲多種類型,但是總體上認爲

原创 【JavaScript】整理

一、變量類型和計算 JS中使用typeof能得到的哪些類型 何時使用===何時使用== JS中有哪些內置函數 JS變量按照存儲方式區分爲哪些類型,並描述其特點 如何理解JSON 變量類型 JS中有7種內置類型,7種內置類

原创 關於事件委託的嘗試

1 常寫代碼 ul.addEventListener('click', function(e){ if(e.target.tagName.toLowerCase() === 'li'){ fn() /

原创 【JavaScript】用JS刷劍指offer

1 二維數組的查找 題目描述 在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 題目分析

原创 【JavaScript】ES6 -箭頭函數

箭頭函數 箭頭函數是什麼 ES6標準新增了一種新的函數:Arrow Function(箭頭函數) 箭頭函數分類邊界 只包含一個表達式,連{ ... }和return都省略掉了 x => x * x 上面的箭頭函數相當於 f

原创 【JavaScript】其它-數組API

數組的9大操作 數組的創建 var arrayObj = new Array(); //創建一個數組 var arrayObj = new Array([size]); //創建一個數組並指定長度,注意不是上限,是長度 var ar

原创 【JavaScript】其它-對象API

for in:遍歷對象中所有屬性 var obj = { x: 100, y: 200, z: 300 } var key; for (key in obj) { // key就是obj的屬性名,即x, y, z //

原创 【JavaScript】ES6-le、var、constant

ES6的let、const和ES5的var的區別 使用var(ES5)聲明的變量,其作用域爲該語句所在的函數內,且存在變量提升現象 使用let(ES6)聲明的變量,其作用域爲該語句所在的代碼塊內,不存在變量提升 使用const(ES