json
json是 JavaScript Object Notation 的首字母縮寫铣墨,單詞的意思是javascript對象表示法士飒,這里說的json指的是類似于javascript對象的一種數(shù)據(jù)格式谬莹,目前這種數(shù)據(jù)格式比較流行陋率,逐漸替換掉了傳統(tǒng)的xml數(shù)據(jù)格式教翩。
javascript對象字面量:
var tom = {
? ? name:'tom',
? ? age:18
}
json格式的數(shù)據(jù):
{
? ? "name":'tom',
? ? "age":18
}
與json對象不同的是沛简,json數(shù)據(jù)格式的屬性名稱需要用雙引號引起來齐鲤,用單引號或者不用引號會導致讀取數(shù)據(jù)錯誤。
json的另外一個數(shù)據(jù)格式是數(shù)組椒楣,和javascript中的數(shù)組字面量相同给郊。
ajax與jsonp
ajax技術(shù)的目的是讓javascript發(fā)送http請求,與后臺通信捧灰,獲取數(shù)據(jù)和信息淆九。ajax技術(shù)的原理是實例化xmlhttp對象,使用此對象與后臺通信毛俏。ajax通信的過程不會影響后續(xù)javascript的執(zhí)行吩屹,從而實現(xiàn)異步。
同步和異步?
現(xiàn)實生活中拧抖,同步指的是同時做幾件事情煤搜,異步指的是做完一件事后再做另外一件事,程序中的同步和異步是把現(xiàn)實生活中的概念對調(diào)唧席,也就是程序中的異步指的是現(xiàn)實生活中的同步擦盾,程序中的同步指的是現(xiàn)實生活中的異步嘲驾。
局部刷新和無刷新?
ajax可以實現(xiàn)局部刷新,也叫做無刷新迹卢,無刷新指的是整個頁面不刷新辽故,只是局部刷新,ajax可以自己發(fā)送http請求腐碱,不用通過瀏覽器的地址欄誊垢,所以頁面整體不會刷新,ajax獲取到后臺數(shù)據(jù)症见,更新頁面顯示數(shù)據(jù)的部分喂走,就做到了頁面局部刷新。
同源策略?
ajax請求的頁面或資源只能是同一個域下面的資源谋作,不能是其他域的資源芋肠,這是在設計ajax時基于安全的考慮。特征報錯提示:
XMLHttpRequest cannot load https://www.baidu.com/. No?
'Access-Control-Allow-Origin' header is present on the requested resource.?
Origin 'null' is therefore not allowed access.
$.ajax使用方法?
常用參數(shù):
1遵蚜、url 請求地址
2帖池、type 請求方式,默認是'GET'吭净,常用的還有'POST'
3睡汹、dataType 設置返回的數(shù)據(jù)格式,常用的是'json'格式寂殉,也可以設置為'html'
4帮孔、data 設置發(fā)送給服務器的數(shù)據(jù)
5、success 設置請求成功后的回調(diào)函數(shù)
6不撑、error 設置請求失敗后的回調(diào)函數(shù)
7文兢、async 設置是否異步,默認值是'true'焕檬,表示異步
寫法(推薦):
$.ajax({
? ? url: 'js/user.json',
? ? type: 'GET',
? ? dataType: 'json',
? ? data:{'aa':1}
})
.done(function(data) {
? ? ......
})
.fail(function() {
? ? alert('服務器超時姆坚,請重試!');
});
jsonp?
ajax只能請求同一個域下的數(shù)據(jù)或資源实愚,有時候需要跨域請求數(shù)據(jù)兼呵,就需要用到jsonp技術(shù),jsonp可以跨域請求數(shù)據(jù)腊敲,它的原理主要是利用了script標簽可以跨域鏈接資源的特性击喂。
正則表達式
1、什么是正則表達式:?
能讓計算機讀懂的字符串匹配規(guī)則碰辅。
2懂昂、正則表達式的寫法:
var re=new RegExp('規(guī)則', '可選參數(shù)');
var re=/規(guī)則/參數(shù);
3、規(guī)則中的字符?
1)普通字符匹配:
如:/a/ 匹配字符 ‘a(chǎn)’没宾,/a,b/ 匹配字符 ‘a(chǎn),b’
2)轉(zhuǎn)義字符匹配:
\d 匹配一個數(shù)字凌彬,即0-9
\D 匹配一個非數(shù)字沸柔,即除了0-9
\w 匹配一個單詞字符(字母、數(shù)字铲敛、下劃線)
\W 匹配任何非單詞字符褐澎。等價于[^A-Za-z0-9_]
\s 匹配一個空白符
\S 匹配一個非空白符
\b 匹配單詞邊界
\B 匹配非單詞邊界
. 匹配一個任意字符,除了換行符‘\n’和回車符‘\r’
\1 重復子項
4伐蒋、量詞:對左邊的匹配字符定義個數(shù)?
? 出現(xiàn)零次或一次(最多出現(xiàn)一次)
+ 出現(xiàn)一次或多次(至少出現(xiàn)一次)
* 出現(xiàn)零次或多次(任意次)
{n} 出現(xiàn)n次
{n,m} 出現(xiàn)n到m次
{n,} 至少出現(xiàn)n次
5工三、任意一個或者范圍?
[abc123] : 匹配‘a(chǎn)bc123’中的任意一個字符
[a-z0-9] : 匹配a到z或者0到9中的任意一個字符
6、限制開頭結(jié)尾?
^ 以緊挨的元素開頭
$ 以緊挨的元素結(jié)尾
7先鱼、修飾參數(shù):
g: global俭正,全文搜索,默認搜索到第一個結(jié)果接停止
i: ingore case型型,忽略大小寫段审,默認大小寫敏感
m: multiple lines全蝶,多行搜索(更改^ 和$的含義闹蒜,使它們分別在任意一行對待行首和行尾匹配,而不僅僅在整個字符串的開頭和結(jié)尾匹配)
8抑淫、常用函數(shù)?
1绷落、test
用法:正則.test(字符串) 匹配成功,就返回真始苇,否則就返回假
2砌烁、search
用法:字符串.search(正則) 匹配成功,返回位置催式,否則返回-1
3函喉、match
用法: 字符串.match(正則);匹配成功荣月,就返回匹配成功的數(shù)組管呵,否則就返回null
4、replace
用法:字符串.replace(正則哺窄,新的字符串) 匹配成功的字符去替換新的字符
正則默認規(guī)則?
匹配成功就結(jié)束捐下,不會繼續(xù)匹配枣接,區(qū)分大小寫