原创 javascript編譯過程

作用域和作用域鏈 [[scope]]: 每個JavaScript函數都是一個對象,對象中有些屬性我們可以訪問,有些不可以,但有些不可以,這些屬性僅供JavaScript引擎存取,[[scope]]就是其中一個。[[scope]]指

原创 手動模擬實現Map

基於hash算法 表 鏈表實現模擬 拿到對應的key值----> 轉化得到hash值---->對應到相對的表的位置(這個其實使用一個數組實現) ----> 在對應的位置對鏈表進行操作 function myMap() {

原创 Vue.extend源碼分析

整體思路比較簡單,就直接寫在代碼裏邊了 Vue.extend = function (extendOptions: Object): Function { extendOptions = extendOptions ||

原创 Generator

簡介: 生成器,本身是函數,執行後返回迭代對象,函數內部要配合yield使用Generator函數分段執行,遇到Yields即暫停 特點: function和函數名之間需要帶* 函數體內部Yield表達式,產出不同的內部狀態 fu

原创 Iterator和Symbol

迭代模式: 提供一種方法可以順序獲得聚合對象中的各個元素,是一種最簡單也是最常見的一種設計模式。它可以讓用戶透過特定的接口巡訪集合中的每一個元素而不用瞭解底層的實現 迭代器簡介: 依照與迭代模式的思想而實現,分爲內部迭代器和外部迭

原创 async+await

async簡介 async函數,是Generator語法糖,通過babel編譯後可以看出他就是Generator+co+Promise思想實現的。配合await使用 目的:優雅的解決異步問題 用法 async關鍵字定義的函數,返

原创 手撕Promise代碼

我的思路是根據這個Promise的使用方法,一步步用js還原其原理 // 這個回調函數傳進來就開始執行了 let oP = new Promise((resolve, reject) => { resolve(1) }

原创 css三大常規佈局

常規流 盒模型:規定單個盒子的規則 視覺格式化模型(佈局規則):頁面中的多個盒子排列規則 視覺格式化模型,大體上將頁面中盒子的排列分爲三種方式: 常規流 浮動 定位 常規流佈局 常規流、文檔流、普通文檔流、常規文檔流 所有元素

原创 對象的基本問題和一些引用場景

創建方法: var obj = {} 對象字面量/對象直接量 構造函數 系統自帶的函數 自定義(要加上new操作符)大駝峯式命名規則 構造函數的內部原理: 在函數體最前面隱式的加上this = {}; 執行this.xx

原创 初識nginx

學習nginx接觸到的linux中的命令行 service在/sbin目錄下,是一個腳本文件,它通過檢查/etc/init.d目錄中的一系列腳本文件來識別各個服務,並調用這些腳本從而實現對服務的控制。 service腳本的基本用

原创 數組常用的源代碼

push() var arr = [1, 3, 4, 5] Array.prototype.myPush = function() { for(var i = 0; i < arguments.length; i ++) {

原创 HTTP知識總結

HTTP是基於TCP/IP協議的應用層協議,用於客戶端和服務器之間的通信,默認80端口。我們按照他的發展歷程的時間順序開始說。 1. HTTP/0.9 1990年提出的,是最早期的版本,只有一個命令GET。 2. HTTP/1.0

原创 封裝ajax

function ajax(method, url, data, callback, flag) { // 創建全平臺兼容的XMLHTTPREQUEST對象 function getXHR() { va

原创 __dirname和resolve()淺析

在任何模塊文件內部,可以使用__dirname變量獲取當前模塊文件所在目錄的完整絕對路徑。 在應用程序根目錄下新建app.js文件,其中代碼如下所示。 var testModule1=require(’. ./test/test

原创 vue項目中引入svg的問題

最近在跟着一個網上的項目進行學習,遇到的第一個問題就是vue中使用svg圖標。基於vue的組件化思想,項目中進行了開發了一個SvgIcon組件。在此,我們要先安裝好"svg-sprite-loader"(這個之後要去學習一下這個庫)