1、javascrript三大核心
ecmaJavaScript、bom、dom
2、匿名函數立即調用
(function(){
alter("匿名函數立即執行")
} )()
3、JavaScript不支持java中的重載,後定義的同名方法會覆蓋前面定義的方法
4、手動模擬JavaScript
<script type = "text/javascript">
function add(){
var sum = 0;
for(var i= 0;i < arguments.length;i++){
sum += arguments[i];
}
return sum;
}
alter(add(2,3));
alter(add(5,6,10));
</script>
5、函數的遞歸使用
在函數內部自己調用自己,有終止條件,否則會出現死循環。
<script type = "text/javascript">
funtion jieCheng(num){
if(num == 1){
return 1;
}
return jieCheng(num-1)*
}
</script>
6、javascript數組特點
a、數組長度可以動態改變
b、同一個數組可以存儲不同數據類型
c、數據的有序集合
d、每個數組都有一個length屬性,表示的是數組中的元素的個數
7、數組的創建有兩種方式:字面常量方式和構造函數
var colors = ["black","red","blue"];
var colors = new Arrray("black","red","blue");
//for...in遍歷數組,是一種精準的迭代語句,可以用來枚舉對象的屬性和數組的元素
for(var index in arr){console.log(arr(i));}
//foreach循環遍歷數組
arr.forEach(function(element,index)){alter(element);}
//數組常用方法
toStirng(); //只能使用,連接
join();//可以使用指定字符進行連接
//棧操作
push;pop;
//隊列操作
unshift添加元素到,shift移除隊列頭元素
8、Cookie,也用Cookies某些網站爲了辨別用戶身份、進行session跟蹤而存儲在用戶本地終端上的數據(通常經過加密)
Cookie是由瀏覽器將document對象的Cookie屬性提供給javascript的,可以由javascript對其進行控制,但這並不是javascript本身的屬性。
Cookie是存在於用戶硬盤的一個文件,這個文件通常對應於一個域名,當瀏覽器再次訪問這個域名時,這個Cookie就發揮作用了。不同瀏覽器的cookie不共享,同一瀏覽器的不同網頁共享。
9、Cookie的作用
a 保存用戶登錄狀態。cookie可以設置過期時間,當超過時間期限後,自動消失。
b 跟蹤用戶行爲。
c 定製頁面。
d 創建購物車。
cookie的缺陷
a cookie可能被禁用。
b 可能是瀏覽器相關的。不同瀏覽器之間保存的cookie是不能互相訪問的
c 可能被刪除。cookie是保存在用戶硬盤上的一個文件,可能被刪除。
d 安全性不夠高。所有的cookie都是以純文本的形式記錄與文件中的,因此如果要保存用戶名密碼等信息時,最好先經過加密處理。
cookie的構成
a 名稱:一個唯一確定cookie的名稱。不區分大小寫,cookie的名稱必須是經過URL編碼的。
b 值:儲存在cookie中的字符串值,必須經過URL編碼。
c 域:cookie對於域是有效的,那麼對於其所有子域都是有效的。
d 路徑:對於指定域的那個路徑應向服務器發cookie
e 失效時間:表示cookie何時應該被刪除的時間戳
f 安全標誌:指定後,cookie只有在使用ssl連接時才發送到服務器
cookie的存儲
a 服務器端通過http響應頭Set—Cookie來通知瀏覽器存儲cookie。客戶端通過javascript去存儲cookie。javascript操作cookie需要通過document的cookie屬性來完成。
讀取cookie仍然是通過document的cookie屬性,不過字符串需要我們自己解析
刪除cookie
刪除cookie的原理非常簡單,只要把超時時間設置爲0,就會立即刪除了
10、DOM操作
DOM是針對HTML和XML文檔的一個API(應用程序編程接口)。DOM描繪了一個層次化的節點樹,允許開發人員添加、移除和修改頁面的某一部分。
W3C DOM標準分爲3部分;
core DOM-針對任何結構化穩當的標準模型
XML DOM-針對XML文檔的標準模板
HTML DOM-針對HTML穩當的標準模型
document節點是每個文檔節點的根節點
document傑斯按下面只有html節點,我們稱爲文檔元素。
-文檔元素是文檔的最外層元素,其他元素都包含在文檔元素中
-一個文檔只能有一個文檔元素,在html中文檔元素永遠是元素。
DOM樹中,html文檔中每一處標記都可以用樹中的一個節點表示
11、DOM共有12種節點類型
12、document對象,可以當成全局變量來使用
13、js事件
就是用戶或者瀏覽器執行的某種操作
14、事件流:描述的是從頁面中接收事件的順序
包括兩種:冒泡流和捕獲流
IE的事件流叫做事件冒泡,即事件開始時由最具體的元素接收,然後逐級向上傳播到較爲不具體的節點(文檔)
冒泡流指事件像冒泡排序一樣是從底層逐漸像上層傳播的
捕獲流是由NetScape Communicator團隊提出的靈位一種事件流。事件捕獲的思想是不太具體的節點應該更早接收到事件,而最具體的節點應該是最後接收事件。
15、DOM2級事件規定事件流包括三個階段:事件捕獲階段、處於目標階段、事件冒泡階段
16、HTML中指定事件處理程序有兩個缺點:
a 存在時差問題,比如函數定義在文檔尾部,在爲解析函數之前就點擊了按鈕,則會出現錯誤
b HTML代碼和javascript代碼緊密耦合,如果要更換事件的處理程序,要同時改動html代碼和js代碼
17、DOM0級別事件處理程序
將一個函數賦值給事件處理程序。這時事件處理程序可以看成是元素對象的方法,事件處理程序就是在元素的作用域中運行(this就是指代這個對象)
18、load和ready事件的區別:
ready表示文檔結構已經加載完成(不包含圖片等非文字媒體文件)
load表示頁面包含圖片等文件在內的所有元素都加載完成
19、鼠標事件
由於移動設備沒有鼠標,所以與電腦端有一些不同之處。移動設備儘量使用移動端事件,而不要使用鼠標事件
不支持dbclick雙擊事件。在移動設備中雙擊瀏覽器窗口會放大畫面
單機元素會觸發mousemove事件
兩個手指放在屏幕上且頁面隨手指移動而滾動時會觸發mousewheel和scroll事件