1.閉包:函式在呼叫的時候會形成乙個私有的作用域,對內部變數起到保護的作用,這就是閉包。
2.變數銷毀:
1.人為銷毀 var a=12; a=null
2.自然銷毀 函式呼叫完成之後 瀏覽器會自動銷毀函式內的變數
3閉包作用
保護變數
快取資料
4.閉包的種類
1.函式式
2.物件式
5.函式返回值的問題
每個函式都有乙個返回值,如果人為返回,return的什麼就是什麼,如果沒有就是undefined
6.閉包怎麼快取資料
7. 正則regexp
正則 就是一條規則,用於檢驗字串的格式,目標就是字串。
只要要是表單提交的資料都是字串。
8. 正則定義
var reg=new regexp();
var reg=/格式/;
9. 正則的方法
就兩大功能,乙個是匹配,匹配成功就是true,第二個是捕獲,如果有就拿出來。
test() 用於匹配
exec()用於捕獲
10. 正則修飾符 如何去匹配
區不區分大小寫 i 代表忽略大小寫
全域性 g代表全域性匹配
m代表多行匹配
怎麼使用
var reg=new regexp(「hello」,g)
var reg=/hello/gi
11.字串的方法 跟正則有關的
1.match()查詢乙個或多個與正則相匹配的 有就返回的是查詢的結果,沒有就是null
2.search() 匹配和正則相同的字元,有就返回索引,沒有就是-1
replace()匹配與正則相同的,並替換掉,返回的是替換後的字串
12,正則的方括號
[abc] 代表查詢方括號中的任何字元
[^abc]代表查詢任何乙個不在方括號之間的字元
[0-9]查詢0到9之間的數字
[a-z] 查詢任何小寫a到小寫z的字元
[a-z]查詢任何大寫a到大寫z的字元
[a-z]查詢大寫a到小寫z的字元
(red|blue|green)
13元字元
.代表單個字元
\w代表單詞字元 數字 字母 _
\w 代表非單詞字元
\d 代表數字
\d 代表非數字
\s 代表空白字元
\s 代表非空白字元
\b 代表單詞邊界
\b 代表非單詞邊界
14. 量詞
n+ 代表至少1個n的字元
n* 代表0個或多個n
n? 包含0個或1個n
n 包含x個n
n 包含至少x個n
n 包含大於等於x個小於等於y個n
n$ 包含以n結尾的字串
^n包含以n開頭的字串
9,?=n 指定字串後面緊跟的n的字串
--正則regexp
概念:用來檢驗字串的規則。
如何使用
var reg=// var reg=new regexp() 最後的本質都是乙個物件
方法test() 匹配的方法
exec()捕獲的方法
修飾符img方括號
元字元\d
量詞正則的理解
正則的懶惰性
每一次在exec()中捕獲的時候,只捕獲第一次匹配的內容,而不往下捕獲了。我們把這叫正則的懶惰性,每一次捕獲的開始位置都是從0開始
解決正則的懶惰性呢
修飾符g
正則的例項物件reg上有乙個lastindex屬性 他是正則捕獲的起始位置
正則的貪婪性
每一次匹配都是按照最長的出結果,我們把這種功能叫正則的貪婪性
如何解決正則的貪婪性
在元字元量詞後面加?
補充 迴圈語句 for for in while do---while---
二 分組捕獲 正則帶() 在數分組的個數時從左往右
var reg=/(a)(b)/ 就相當於大正則裡面帶了兩個小正則
第一組是(a) 第二組是(b)
分組捕獲的作用
改變優先順序
分組引用 \1,\2
\2代表和第二個分組出現一模一樣的內容,\1代表和第乙個分組出現一模一樣的內容
reg中的規則是第乙個是乙個分組 且是乙個單詞字元 第二個是個分組引用要求和第一組一模一樣,第三個是第二個分組且是乙個單詞字元,第四個是乙個分組引用,要求和第二組一模一樣。
3.分組捕獲
分組的捕獲前提是正則存在分組,不僅把大正則的內容捕獲到,把小正則的內容也捕獲到。
怎樣解除分組中分組捕獲呢,如果你不想捕獲某乙個分組中的內容,在這個分組的前面加上?:就可以了
1. 分組捕獲
正則捕獲的時候不僅把大正則捕獲的內容捕獲到,還把小正則捕獲的內容捕獲到
第乙個是把大正則捕獲的內容
第二,3個是第乙個分組捕獲的內容和第二個分組捕獲的內容
在分組捕獲當中不想捕獲的分組前面加乙個?:就行
exec和match的區別
在非全域性下捕獲的結果是一樣的
在全域性下 exec捕獲大正則也捕獲分組的 而match只捕獲大正則
replace細講
replace把原有的字元替換成新的字元
在不使用正則的情況下,沒執行一次只能替換乙個字元
replace是第乙個值是正則的實現原理
首先把與正則匹配的都捕獲到,然後從要替換的替換成我們新的內容
如果第二個引數是function
1.正則
用來處理字串的乙個規則。除了處理字串別的啥也幹不了
用來判斷乙個字串是否符合這個規則 test() 正則的匹配
正則還可以把符合正則的內容捕獲到 exec() 正則的捕獲
如何建立正則 物件資料型別 建立方式 兩種
乙個是字面量的方式
var reg=/\d/
乙個是例項方式
var reg=new regexp(「string」)
var obj={} var obj=new object() 沒有區別 但是正則的這兩種建立方式有點區別
如何學習正則
一是匹配 2是捕獲
console.dir(regexp.prototype)
z
正則 正則方法 1103
元字元 0 9 a z 子表示式 0 9 乙個0 9的數值 a z 乙個a z的字元 乙個以上 模式修正符 gi g 全域性匹配 i 不區分大小寫var str 123abcdefgh4abcdefgh 匹配乙個數字 var patt 0 9 全域性匹配乙個數字 var patt 0 9 g匹配乙個...
正則的matche方法和search方法
1.matche方法match string pos endpos string 匹配使用的文字,pos 文字中正規表示式開始搜尋的索引。及開始搜尋 string 的下標 endpos 文字中正規表示式結束搜尋的索引。如果不指定pos,預設是從開頭開始匹配,如果匹配不到,直接返回 none impo...
正則捕獲方法
捕獲符合匹配條件的子串 假如匹配到,捕獲的結果是乙個陣列 第乙個陣列元素為捕獲的內容,即擷取的符合匹配條件的第乙個字串 第二個陣列元素為index,即匹配到的第乙個字串的的起始位置 第三個陣列元素為input,值為原始檢測的字串 假如匹配不到 結果就是null 正則捕獲懶惰性 概念 執行一次exec...