一、事件 1-26
1、onmousedown
定義:onmousedown事件會在鼠標按鍵被按下時發生
2、onmouseup
定義:onmouseup事件會在鼠標按鍵被松開時發生
3、onmousemove
定義:onmousemove事件會在鼠標指針移動時發生
支持該事件的js對象:document
但是onmousemove默認情況下沒有任何對象的一個事件;
因為鼠標移動頻繁發生。
4、onmouseover
定義:onmouseover事件會在鼠標指針移動到指定的對象上時發生
5、onmouseout
定義:onmouseout事件會在鼠標指針移出指定的對象時發生
6、onclick單擊事件
定義:onclick事件和onmousedown不同。單擊事件是在同一元素上發生了
鼠標按下時間之后發生了鼠標放開時間是發生的。
理解:鼠標按下抬起以后事件才發生。
7、onfocus光標移入事件
定義:onfocus事件在對象獲得焦點時發生
8、onblur光標移出事件
定義:onblur事件會在對象失去焦點時發生
9、oncontextmenu右鍵事件
鼠標按下右鍵的時候發生
10、onsubmit
onsubmit事件會在表單中的確認按鈕(submit)被
點擊是發生。
11、onkeydown
onkeydown事件會在用戶按下一個鍵盤按鍵時發生
12、onkeyup
obkeyup事件會在鍵盤按鍵被松開時發生
13、onload
onload事件會在頁面或圖像加載完成后立即發生
14、onscroll
onscroll事件拖動滾動條時發生
15、onresize
onresize事件會在窗口或框架被調整大小時發生
16、onmousewheel
onmousewheel事件ie、chrome下鼠標滾輪滾動時發生
17、DOMMouseScroll
DOMMouseScroll事件是標准下(ff)鼠標滾輪事件,
鼠標滾輪滾動時發生
18、onreadystatechange
onreadystatechange事件:當請求被發送到服務器時;
我們需要執行一些基於響應的任務。每當readyState
改變時,就會觸發onreadystatechange事件。
readyState屬性存有XMLHttpRequest的狀態信息。
在onreadystatechange事件中,我們規定當服務器響應
已做好被處理的准備時所執行的任務。
19、attachEvent綁定事件
ie下的綁定事件,2個參數,第一個什么事件,第二個執
行函數(倒序執行)。注意this指向
如:obj。attachEvent(‘onclick’,aaa)
function aaa(){}
20、addEventListener綁定事件
標准下的綁定事件,3個參數。1什么事件(不加ON),
2執行函數 3、一個布爾值。true是捕獲階段,false是
冒泡階段
21、event對象指事件的狀態
簡單的:一個 存了 事件詳細信息的東西
網上較專業的:Event對象代表事件的狀態,比如事件在其中發生的元素
鍵盤按鍵的狀態,鼠標的位置,鼠標按鈕的狀態,通常
與函數結合使用。
22、clientX、clientY
在Event對象下獲取鼠標位置
23、cancelBubble =true
在Event對象下取消冒泡事件
24、keyCode
在Event對象下獲取用戶按下鍵盤的哪個按鍵
25、preventDefault()
阻止默認默認事件的綁定寫法
26、return false
阻止默認時間的普通寫法
二、DOM 27-46
27、getElementById
通過id獲取某一個元素
28、getElementsByTagName
通過標簽名獲取一組元素的集合
29、childNodes
獲取子節點,但是標准下會獲取空白節點
獲取第一級子元素的節點
30、nodeType
節點類型
1)元素節點(標簽)2)文本節點(空白節點)
31、children
獲取子節點,但是沒有兼容性問題
獲取第一級子元素的節點
32、firstElementChild || firstChild
標准下:firstElementChild ie不支持
ie下是 firstChild
獲取子元素里的第一個
33、lastElementChild || lastChild
標准下:lastElementChild ie不支持
ie下是 lastChild
獲取子元素里的最后一個
34、nextElementSibling || nextSibling
標准下:nextElementSibling ie不支持
ie下 nextSibling
獲取子指定元素的下一個兄弟節點
35、previousElementSibling || previousSibling
標准下: previousElementSibling ie不支持
id:previousSibling
獲取指定元素的上一個兄弟節點
36、parentNode
獲取父節點
37、offsetParent
獲取有定位的父節點,都沒有定位的話父節點就是body
38、offsetWidth-----有問題
獲取元素的實際寬度(width+padding+border)
39、offsetHeight
獲取元素的高度(height+padding+border)
40、clientWidth
獲取元素的內部寬度(width+padding)
41、clientHeight
獲取元素的內部高度(height+padding)
42、createElement(標簽名)
創建一個節點
43、appendchild(節點)
追加一個節點
44、insertBefore(節點,原有節點)
在已有的元素前面插入
45、removeChild(節點)
刪除一個節點
46、replaceChild(節點,已有節點)
替換已有的節點
三、BOM操作: 47-53
47、window。open()
打開窗口
48、window。close()
關閉窗口,標准下不支持
49、window。location
獲取瀏覽器地址
50、window。location。href
獲取整體的網址
51、window。location。search
獲取問號?后面的內容,包括問號
52、window。location。hash
獲取警號#后面的內容,包括警號
53、window。location。reload()
自動刷新,定時器配合
53、window。navigator。userAgent
獲取瀏覽器信息
四、js基礎: 54-126
54、if else 如果。。。。否則。。。
55、switch 如果
56、?: 三木,就是如果。。。否則。。。
57、for(){} for循環
58、for in
59、while=for
60、continue 終止本次循環
if(i=2)continue 跳過這個條件
61、break 終止當前循環
if(i=3)break 結束本次
62、undefined 未定義
63、null=========?
64、=== 只比較,不轉換類型
65、== 不僅比較,而且還會將兩個東西轉換成相同的類型
66、= 賦值
67、! 就是 不 的意思
68、setTimeout
設置定時器,2秒鍾后,執行一次,並且只執行一次,---定時炸彈
69、clearTimerout
清楚定時器,清理setTimerout
70、setInterval
設置定時器,每兩秒執行一次
71、clearInterval
清楚定時器,清理setInterval
72、arguments
實參的元素集合
73、call
改變this取向
fn名.call(this,‘black’)第一個參數是函數之行的環境,
從第二個參數開始,才是函數的真正參數
oDiv.onclick = function(){
toChange.call(this,'black');
};
function toChange(sColor){
this.style.background = sColor;
}
74、apply
改變this取向,
function show(a, b)
{
alert('this是:'+this+'\na是:'+a+'\nb是:'+b);
}
show(12, 8);
show.apply(document, [12, 8]);
第二個參數是以數組形勢存在的
75、callee ===============?調用這個函數自身的
76、var arr=【】; 聲明一個數組
77、var arr=new Array() 聲明一個數組
78、push
向數組的末尾添加一個或更多元素,並返回新的長度
79、pop
刪除數組最后一個元素,並返回這個元素
80、shift
刪除數組第一個元素,並返回這個元素
81、unshift
向數組的開頭添加一個或多個元素,並返回新的長度
82、splice
刪除元素,並向數組添加新的元素
83、join()
把數組的所有元素放入一個字符串。元素通過指定
的分隔符進行分隔
84、sort()
對數組的元素進行排序
85、concent----concat()?
連接兩個數組或者多個數組,並返回結果
86、split
分割字符串,獲得數組
87、substring
獲取字符串
包括開始不包括結束
88、indexOf
從前往后檢索字符串
89、charAt
獲取某個字符
90、var re=//; 聲明一個正則對象
91、var re=new RegExp() 聲明一個正則對象
92、search 查找一個字符串,只找第一次出現的位置
93、month ===============?
match-匹配符合正則的東西,挑東西返回數組
94、test 用正則檢驗字符串是否符合它所規定的規則
95、replace 替換,把符合規則的東西替換成字符串
96、量詞:{n,m}至少出現n次,最多出現m次
+許多
* {0,} 0到任意次
?零次或者一次{0,1}
{n,}最少n次,最多不限
{,m}最少不限最多m次
{n}正好n次
97、字符類:
1[abc]2 1和2中間出現a或b或c
[^0-9]排除數字以外所有都可以
[a-z]所有的英文
[0-9]所有的數字
98、標識: i 忽略大小寫 g 全局匹配
99、首尾: ^ $
100、轉義:
\d 查找數字 [0-9]
\D 除了數字[^0-9]
\s 空白
\b 單詞邊界
\w 數字字母下划線--用戶名
. 任意字符
\. 代表.本身
101、var oDate= new Date() 獲取當前時間
102、getHours() 獲取小時
103、getMinutes() 獲取分鍾
104、getSeconds() 獲取秒
105、getFullYear() 獲取年
106、getDay() 獲取星期
107、getDate() 獲取當前的時間日期
108、setDate() 設置一個月的某一天
109、var oImg=new Image() 創建一個image對象
110、什么叫ajax
通過XMLHttpRequest與服務器通信,進行無刷新操作
ajax采用的是異步請求
111、同步與異步的區別
同步就是同一時間做一件事
異步就是同一時間做多件事
112、ajax的交互方式
1)發送數據並返回 ()(注冊)
2)只發送不返回 ()========?例子
3)不發送只返回 (股票)
113、post與get的區別
1)發送方式不一樣:get加載網址問好后面的
post把數據放在一個傳輸體中發送上去的
2)安全不一樣
post相對安全,get不安全
3)網址長度不一樣
ie下get網址超過2048字節將被截斷
post沒有上限
4)緩存問題
get可以緩存網址,post不會緩存網址
5)用途不一樣
get:查詢數據,post修改數據
114、發送數據是什么樣的?
串聯化數據:key1=value1&key2=value2
115、返回數據是什么樣的?
返回的是字符串
116、跨域:jsonp?
(利用script標簽跨域)
在頭部創建個script標簽,
改變script標簽中src
117、ajax的編寫步驟?
1)創建ajax對象(要有手機)
2)鏈接服務器open(撥號)
3)監聽數據返回onreadystatechange(聽)
4)發送數據send(說)
5)close(忽略)(掛了)
118、json怎么取?=========?
通過串聯化數據
119、什么是對象?
對象是一個整體,對外提供一些操作。||
黑盒子,看不到內部的樣子,
能看到表面的按鈕
120、什么是面向對象?
使用對象時,只關注對象提供的功能,
不關注其內部細節,比如jQuery ||
使用一個東西的時候,不去管內部是
怎么做的,只用好它的功能
121、引用類型是什么意思?=========?
122、this的本質其實就是這個方法或者函數
屬於哪個對象的,this就是誰。函數前面有new
的時候this會失效。
123、原型是什么? =========?
原型就是給一類對象加東西
124、面向對象怎么寫?=========?
125、繼承采用什么方式?
采用原型鏈的方式繼承
126、面向對象變成的特點?
封裝、繼承、多態
五、常用技巧:
1、加開關:bBtn
例如:
<script>
window.onload = function(){
var aLi = document.getElementsByTagName('li');
var aImg = document.getElementsByTagName('img');
for(var i=0;i<aLi.length;i++){
aLi[i].bBtn = true; // ------設置開關
aLi[i].index = i;
aLi[i].onclick = function(){
if(this.bBtn){
aImg[this.index].src = 'on' + this.index + '.png';
this.bBtn = false;
}
else{
aImg[this.index].src = 'off' + this.index + '.png';
this.bBtn = true;
}
};
}
};
</script>
2、加索引:index;
例如:
<script>
window.onload=function()
{
var oBtn=document.getElementById('btn');
var aBtn=oBtn.getElementsByTagName('input');
var oText=document.getElementById('text');
var aDiv=oText.getElementsByTagName('div');
for(var i=0; i<aBtn.length; i++)
{
aBtn[i].index=i; //先添加索引值
aBtn[i].onclick=fn1;
}
function fn1()
{
alert(this.index); //后獲取索引值
aDiv[this.index].style.background='yellow';
}
};
</script>
3、遞歸===============?
4、枚舉================?
5、定時器:
setInterval()
6、alert
console。log=========?這是啥意思
