原创 javascript深入理解-從作用域鏈理解閉包

一、概要 紅寶書(P178)對於閉包的定義:閉包就是有權訪問另外一個函數作用域中變量的函數。 MDN,對於閉包的定義:閉包就是指能夠訪問自由變量的函數。 那麼什麼是自由變量?自由變量就是在函數中使用,但既不是函數參數arguments,也不

原创 插件系列--簡單水印(watermark-dom)和算法水印(頻域方式圖片合併)實現

插件github地址:https://github.com/saucxs/wat... 有詳細的使用步驟,可以參考,不會用請留言,感覺可以,請給個星星。 一、簡單水印(watermark-dom) 阿里巴巴內網的不可見水印用的是什麼算法?據

原创 javascript系列--javascript深入淺出圖解作用域鏈和閉包

一、概要 對於閉包的定義(紅寶書P178):閉包就是指有權訪問另外一個函數的作用域中的變量的函數。 關鍵點: 1、閉包是一個函數 2、能夠訪問另外一個函數作用域中的變量 二、閉包特性 對於閉包有下面三個特性: 1、閉包可以訪問當前函數以外的

原创 songEagle開發系列:如何科學有效的讓博客文章實時保存

一、寫在前面 如何實現文章的實時保存?一般寫文章的寫博客的網站都會有這個功能點,這樣保證了用戶在不小心退出的情況下數據的保存下來,這樣的交互比較符合用戶的使用心理學。對於用戶來說這是一個非常實用的功能,作爲一個博客來說,有這個還是不錯的。哈

原创 javascript系列--javascript引擎執行的過程的理解--語法分析和預編譯階段

一、概述 js是一種非常靈活的語言,理解js引擎的執行過程對於我們學習js是非常有必要的。看了很多這方便文章,大多數是講的是事件循環(event loop)或者變量提升的等,並沒有全面分析其中的過程。所以覺得把這個js執行的詳細過程整理一下

原创 javascript系列--Object.assign實現淺拷貝的原理以及實現

一、前言 之前在前面一篇學習了賦值,淺拷貝和深拷貝。介紹了這三者的相關知識和區別。 傳送門:https://www.mwcxs.top/page/59... 本文會介紹淺拷貝Object.assign()的實現原理,然後咱們試着實現一個淺拷

原创 JavaScript系列--淺析JavaScript解析賦值、淺拷貝和深拷貝的區別

一、賦值(Copy) 賦值是將某一數值或對象賦給某個變量的過程,分爲: 1、基本數據類型:賦值,賦值之後兩個變量互不影響 2、引用數據類型:賦址,兩個變量具有相同的引用,指向同一個對象,相互之間有影響 對基本類型進行賦值操作,兩個變量互不影

原创 JavaScript系列--類型判斷的4種基本方法,研究jquery的type方法,空對象的檢測方法,類數組對象

一、前言 類型判斷有時候真的頭疼,但是一旦熟練使用就會覺得不過如此。初級的,會判斷數字和字符串。中級的,會判斷數組和對象。進階的,會判斷日期,正則,錯誤類型。高級的,會判斷plainObject,空對象,window對象等等。 基本類型:S

原创 工具系列--簡單水印(watermark-dom)和算法水印(頻域方式圖片合併)實現

一、簡單水印(watermark-dom) 阿里巴巴內網的不可見水印用的是什麼算法?據說月餅事件截圖的那位員工也被開除了? 下面的只是簡單的加一個很淺的水印,實現起來很容易。 1、看看水印的效果 隨便找一個網站,比如就找掘金的個人首頁,

原创 javascript系列--正則表達式學習(二)位置匹配

文章首發於sau交流學習社區 一、前言 正則表達式是匹配模式,要麼是匹配字符,要麼匹配位置。 其實在開發中很少用到匹配位置,本篇文章主要包含: 二、什麼是位置 位置:相鄰字符之間的位置。 三、如何匹配位置 在ES5中,共有6個錨:^,

原创 JavaScript系列--淺析原型鏈與繼承

一、前言 繼承是面向對象(OOP)語言中的一個最爲人津津樂道的概念。許多面對對象(OOP)語言都支持兩種繼承方式::接口繼承 和 實現繼承 。 接口繼承只繼承方法簽名,而實現繼承則繼承實際的方法。由於js中方法沒有簽名,在ECMAScri

原创 javascript系列--認識並理解構造函數,原型和原型鏈

一、前言 介紹構造函數,原型,原型鏈。比如說經常會被問道:symbol是不是構造函數;constructor屬性是否只讀;prototype、[[Prototype]]和__proto__的區別;什麼是原型鏈?等等問題。文章首發地址(sa

原创 簡單水印(watermark-dom)和算法水印(頻域方式圖片合併)實現

一、簡單水印(watermark-dom)阿里巴巴內網的不可見水印用的是什麼算法?據說月餅事件截圖的那位員工也被開除了?下面的只是簡單的加一個很淺的水印,實現起來很容易。1、看看水印的效果隨便找一個網站,

原创 npm系列--手把手教你用npm發佈第一個npm包的詳細教程

我們已經實現了路由的自動化構建,但是我們可以看到,一大串代碼懟在裏面。當然你也可以說,把它封裝在一個JS文件裏面,然後使用 require('./autoRoute.js') 給引入進來,那也行。但是,爲什麼不把心放大一點呢?比如說,我們

原创 淺析JavaScript解析賦值、淺拷貝和深拷貝的區別

一、賦值(Copy) 賦值是將某一數值或對象賦給某個變量的過程,分爲: 1、基本數據類型:賦值,賦值之後兩個變量互不影響 2、引用數據類型:賦**址**,兩個變量具有相同的引用,指向同一個對象,相互之間有影響 對基本類型進行賦值操作,兩個