原创 瀏覽器資源加載過程以及優化

當收到一個資源請求的時候將根據URL創建一個對應於要獲得資源的加載器,然後開始對緩存資源進行響應。 如果客戶端對cached進行了禁用的話,那麼將先清空這個資源在緩存中對應的數據,然後進行資源請求(resourceRequest

原创 執行環境

|###執行環境: 執行環境是一個內置規範類型的對象(這種對象不能被編寫代碼所使用,僅僅是爲了維護執行程序所產生的),這個對象與源代碼文本中每一個可執行代碼區域相關聯(比如全局代碼、函數代碼、eval代碼)。程序每當解析器開始進

原创 爲什麼javascript會有兩個表示“沒有”的類型呢?

Js中有兩個表示“沒有”這一概念的基本類型分別是null和undefined,那麼他們有什麼區別呢? 一、歷史原因:null是對象,自動轉化成0. undefined是原始值,自動轉化成NaN。 在js語言初期階段,js是效仿的

原创 深入理解函數內部原理(2)——對一個函數實例進行深入的分析

—— 在閱讀本博客之前先閱讀: 深入理解函數之函數定義、調用、解析、執行 解剖http://blog.csdn.net/wmaoshu/article/details/60469571 本博客是使用一個例子來對這個博客的進行

原创 面向對象的javascript系列文章(2)封裝——信息隱藏

  封裝是爲了實現在分析層面分離關注點的行爲,目的是爲了達到信息隱藏。       一、封裝是分離關注點的一種實現方式         對於一個複雜的系統來說,經過抽象之後,可以清楚的看到一個層次結構。對於每一層的抽象,都是由多個模塊組

原创 git 常用命令筆記

初始化 git init git config git clone [url] 設置貢獻者 name email git config –global user.name git config –global use

原创 深入理解函數內部原理(5)——閉包

什麼是閉包 其實通過前面幾篇博客系統的介紹了函數的定義調用執行過程之後,帶現在應該可以隱隱約約的感覺的閉包的存在了。 什麼是閉包呢?我的理解就是 函數定義的時候的作用域鏈在函數調用的時候依然有效,這就是閉包。 那麼js內部是怎麼實

原创 我是這麼理解設計和模式的

以下完全是我個人的理解,畢竟我項目經驗不是很豐富,未免對一些概念理解有偏差,請多多斧正。   現代一個軟件開發無論是遵循敏捷開發也好都是不斷迭代的,之所以迭代是因爲在開發過程中出現了很多問題,但是最重要的一個因素就是需求的不斷變化

原创 面向對象的javascript系列文章(1)接口——是一個標準委員會

在面向對象開發中,接口確實是一個特別抽象的名詞,加上一些語法的贅述,“醉了~”有木有。 一般在java中對於接口的定義會是這樣的:Java接口是一系列方法的聲明,是一些方法特徵的集合,一個接口只有方法的特徵沒有方法的實現,因此這些方法可以

原创 面向對象的javascript系列文章(3)繼承——代碼重用

          javascript中如何實現繼承   1.1類式繼承 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>類式繼承</t

原创 使用var、let、const聲明變量

一、使用var聲明變量 1、使用方法 通過var關鍵字可以一次聲明一個變量或者多個變量,同時可以爲聲明的變量賦初始值。但是變量的聲明和初始值並不是在同一時間執行的,在執行初始值之前這些聲明的變量的值爲undefined。 'use s

原创 深入理解函數內部原理(6)——函數的內部方法call、apply、bind

##call和apply 這兩個方法都是打破瞭解析器在函數調用時創建執行環境時賦值this綁定的時候的內部規則,直接通過Function內置標準類型的prototype屬性中的兩個方法call和apply進行明確的聲明this的值。

原创 javascript中關於浮點數不精確問題解決方案

不支持負數和數過大的情況,但是實用在前端中一些實戰情況,比如價格等。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>精確度</title>

原创 Sublime Text常用命令

選擇類 Ctrl+D 選中光標所佔的文本,繼續操作則會選中下一個相同的文本。 Alt+F3 選中文本按下快捷鍵,即可一次性選擇全部的相同文本進行同時編輯。舉個栗子:快速選中並更改所有相同的變量名、函數名等。 Ctrl+L 選中整行,繼

原创 深入理解函數內部原理(4)——通過new操作符調用構造函數

以new Experssion(args) 過程一:先確定是否是一個構造函數 先解析Experssion比姑且通過getValue方式取得該值F,通過判斷這個值F是否是一個對象,並且這個對象F是否具有Construct內部方法,如