1.數(shù)組去重
var a=[1,1,2,3,4,4,5]
var b=[]
for(var i=0;i<a.length;i++){
if(b.indexOf(a[i])==-1){
p.push(a[i])
}
}
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr1.length;j++){
arr[i].splice(j,1)
--j;
}
}
2.字符串截取
slice(),
substring(),
substr()
3.操作數(shù)組
push(),尾部添加
shift(),頭部刪除
unshift(),頭部添加
pop()尾部刪除
4.for
5.DOM操作
增刪改查,獲取節(jié)點(diǎn)(ID,classname,tagname,name)
document.getElementById()
document.createElement()
document.createTextNode()
removeChild
appendChild()
replaceChild()
insertBefore()
6.事件監(jiān)聽
addEventListener()
removeEventListener()
element.attachEvent(event, function)
element.detachEvent
7.事件冒泡
從具體到不具體? 子級(jí)元素先觸發(fā),父級(jí)元素再觸發(fā)
return false既可以阻止事件冒泡,又可以阻止事件默認(rèn)行為
非IE瀏覽器 e.stopPropagation()
IE瀏覽器window.event.cancelBubble=true
8.阻止默認(rèn)事件
return false()
event.preventDefault()
事件委托
事件委托就是利用冒泡的原理换况,把事件加到父元素或祖先元素上此迅,觸發(fā)執(zhí)行效果。
.on .bind delegate() live()
9.Math方法
Math.max()
Math.min()
Math.abs()
Math.floor向下取整
Math.ceil()向上取整
Math.random隨機(jī)數(shù)
10.布爾值轉(zhuǎn)換
11.css3新增
文本陰影
盒子陰影
偽類選擇器
p:first-of-type,其父元素首個(gè)p元素的每個(gè)p元素
last-of-type,
only-of-type
only-child 其父元素唯一子元素的每個(gè)p元素
p:nth-child(2) 其父元素第二個(gè)子元素的每個(gè)p元素
12.HTML5新增
13.存儲(chǔ)
本地存儲(chǔ):localstorage,sessionstroage.
有什么區(qū)別锭硼?
localstorage是持久化的本地存儲(chǔ)房资,數(shù)據(jù)不會(huì)被刪除,
sessionstroage是一種會(huì)話級(jí)的存儲(chǔ)檀头,會(huì)話結(jié)束轰异,數(shù)據(jù)也會(huì)隨之銷毀岖沛。
14.Date()對象
new Date()? ? 獲取本機(jī)時(shí)間
.getDate 獲取日期
.getDay 獲取星期
.gatFullYear 獲取年份
.getMinutes 獲取分鐘
.getMonth 獲取月份
.getSeconds 獲取秒數(shù)
15.setTimeOut
16.position
absolute,絕對定位,根據(jù)最近一層來定位
relative搭独,相對定位烫止,根據(jù)自己所處位置來定位
fixed,固定定位戳稽,
17.盒模型
css的盒模型由content馆蠕,padding,border,magin構(gòu)成
18.bootstrap柵格系統(tǒng)
19.原生ajax
相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層(AJAX引擎),使用戶操作與服務(wù)器響應(yīng)異步化。
對于用戶請求ajax引擎會(huì)做一些數(shù)據(jù)驗(yàn)證和數(shù)據(jù)處理惊奇,不是所有請求都提交給服務(wù)器互躬,當(dāng)需要從服務(wù)器讀取新數(shù)據(jù)時(shí)由Ajax引擎代為向服務(wù)器提交請求。AJAX最大優(yōu)點(diǎn)就是不刷新整個(gè)頁面的前提下與服務(wù)器通信維護(hù)數(shù)據(jù)颂郎。
過程的話
第一步:創(chuàng)建一個(gè)ajax引擎對象吼渡,ie6的是new ActiveXObject其他瀏覽器是new一個(gè)xmlHttpRequest對象
第二步 調(diào)用open方法啟動(dòng)一個(gè)請求以備發(fā)送,open方法傳入三個(gè)參數(shù) 請求類型乓序,請求url和一個(gè)布爾值
第三步 調(diào)用send方法發(fā)送
第四部 處理回調(diào)函數(shù)onreadystatechange寺酪,當(dāng)readState = 4 響應(yīng)數(shù)據(jù)完成時(shí) 并且2status=200請求成功的時(shí)候處理響應(yīng)數(shù)據(jù)
注意:回調(diào)函數(shù)要寫在open()和send()之前
20.jsonp原理
動(dòng)態(tài)創(chuàng)建一個(gè)script利用其src屬性實(shí)現(xiàn)跨域
動(dòng)態(tài)創(chuàng)建一個(gè)script標(biāo)簽,利用script標(biāo)簽src屬性訪問沒有限制替劈,實(shí)現(xiàn)跨域寄雀。
web客戶端通過與調(diào)用腳本一樣的方式來調(diào)用跨域服務(wù)器上動(dòng)態(tài)生成的js格式文件(后綴.json),服務(wù)器之所以要?jiǎng)討B(tài)生成json文件目的把客戶端需要的數(shù)據(jù)裝入進(jìn)去陨献。
允許用戶傳遞一個(gè)callback參數(shù)給服務(wù)端盒犹,然后服務(wù)端返回?cái)?shù)據(jù)時(shí)會(huì)將這個(gè)callback參數(shù)作為函數(shù)名來包裹住json數(shù)據(jù) 這樣客戶端就可以隨意定制自己的函數(shù)來自動(dòng)處理返回?cái)?shù)據(jù)
Ajax 和 jsonp的區(qū)別
1.ajax和jsonp的調(diào)用方式很像,目的一樣眨业,都是請求url急膀,然后把服務(wù)器返回的數(shù)據(jù)進(jìn)行處理,因此jquery和ext等框架都把jsonp作為ajax的一種形式進(jìn)行了封裝龄捡;
2.實(shí)質(zhì)不同
ajax的核心是通過xmlHttpRequest獲取非本頁內(nèi)容
jsonp的核心是動(dòng)態(tài)添加script標(biāo)簽調(diào)用服務(wù)器提供的js腳本(后綴.json)
3.區(qū)別聯(lián)系
不在于是否跨域
ajax通過服務(wù)端代理一樣跨域
jsonp也不并不排斥同域的數(shù)據(jù)的獲取
4.jsonp是一種方式或者說非強(qiáng)制性的協(xié)議
ajax也不一定非要用json格式來傳遞數(shù)據(jù)
5.jsonp只支持get請求卓嫂,ajax支持get和post請求
21.http和https的區(qū)別
https相對來說更安全一點(diǎn);
https比http更繁瑣聘殖;
連接方式不同端口也不一樣? (http是80晨雳,https是443。)
22.清除浮動(dòng)的方法
overflow:hidden;
clear:both;
:after
zoom:1
23.閉包
從形式上看來它就像一個(gè)函數(shù)套另一個(gè)函數(shù)就斤,
也就是訪問上層函數(shù)作用域的內(nèi)層函數(shù)就是閉包悍募。
24.meta標(biāo)簽
25.圖片懶加載
原理:當(dāng)訪問一個(gè)頁面的時(shí)候,先把img元素或是其他元素的背景圖片路徑替換成一張大小為1px圖片的路徑(這樣就只需請求一次)洋机,只有當(dāng)圖片出現(xiàn)在 瀏覽器的可視區(qū)域內(nèi)時(shí)坠宴,才設(shè)置圖片真正的路徑,讓圖片顯示出來绷旗,這就是圖片懶加載
26.? 瀏覽器默認(rèn)事件:
1.return false;? (HTML喜鼓、DOM0級(jí))
2. event.preventDefault(); (W3C)
3.event.returnValue = false;(IE)
27.Dom操作:
DOM就是針對html和xml的一個(gè)編程接口副砍,可以使開發(fā)人員進(jìn)行修改、添加頁面的某一部分庄岖』眙幔可以使用javaScript來操作dom實(shí)現(xiàn)增刪改查,動(dòng)態(tài)添加標(biāo)簽屬性等