JQuery源碼之——變數,正則 一、JQ源碼中的正則:
這裡推薦一個正則測試理解的網站:https://regexper.com/
1./[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/
分析:這個是檢測數位。(如css中距離,字型等等設定 +10px,-10px,還有科學技術法)
[+-]? 匹配零個或一個加號或減號
(?:\d*.|) 非擷取匹配,匹配零或多次數字加點(如32.),或匹配空
\d+ 匹配一個或多個數字
(?:[eE][+-]?\d+|) 匹配科學計數法
2./\S+/g
全域匹配任何非空白字元
3./^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/
這是一個匹配標籤和#的,jq官方說法是防止ssh 注入的。
^(?:\s*(<[\w\W]+>)[^>]* 匹配空格 和 <裡面任一字元>標籤,然後在匹配非> 字元
|#([\w-]*))$ 或匹配# 加任包括底線的任何單詞字元
4./^ <(\w+)\s*\/?>(?:<\/\1>|)$/
這是一個匹配成標籤的(例如 <div></div> <br/>)
^ <(\w+)\s*\/?> 開頭以 < 開始 然後匹配一個或多個包括底線的任何單詞字元,然後匹配空白字元,在匹配零個或一個 /
(?:<\/\1>|)$ 結尾匹配 二、JQ中的變數
1. rootjQuery // jQuery(document) 其實就是儲存的 jq的 Document // 在原始碼 886行2. readyList // 和DOM 載入有關係,以後再講3. core_strundefined = typeof undefined // 儲存 字串 undefind;在ie9 以及以下 如果要這麼判斷 a == "undefind" 不是很好,因為老版本ie 識別undefind 和其他瀏覽器不同4. location =window.location document = window.document docElem = document.documentElement// 賦值的變數,不在多講,應該知道。5. _jQuery = window.jQuery6. _$ = window.$ // 上面兩個變數是防止 $ 和 jQuery 衝突的7. class2type = {}, //使用$.type() 方法時用到,儲存資料類型8. core_deletedIds = []// 在之前版本和快取資料有關係,2.0.3版本沒太大作用9. core_version = "2.0.3"// jq 版本號碼