- 概述 - JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言 - 作用:給頁面添加動態效果,校驗用戶信息等. - 入門案例 - js和html的整合 - 方式1:內聯式 "通過<script></script>標簽實現,在標簽體中編寫js代碼即可" - 方式2:外聯式... ...
- 概述 - JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言 - 作用:給頁面添加動態效果,校驗用戶信息等. - 入門案例 - js和html的整合 - 方式1:內聯式 "通過<script></script>標簽實現,在標簽體中編寫js代碼即可" - 方式2:外聯式 "編寫外部的js文件,通過srcipt標簽的src屬性引入即可" - 註意事項: " script標簽可以放在頁面的任何位置,一般放在head中 一個頁面可以有多個srcipt標簽 script標簽一旦使用了src屬性,它的標簽體就會失效" - 組成部分 - ECMAScript:核心語法 - 變數聲明 - 格式: var 變數名稱 = 初始化賦值; - 註意事項: - var可以省略,但是不建議省略 - 末尾的分號也可以省略,但是不建議 - 數據類型 - 原始類型(5種) - Undefined:undefined - Null:null - Number:一切數字 - String:一切被引號引起來的字元串 - Boolean: true 或 false - 運算符typeof "用來判斷給定值的數據的所屬類型 例如: typeof age;" - 引用類型:javaScript第二天內容 - 運算符 - 等性運算符 - == != "判斷數值" - === !== "判斷數值和類型" - 關係運算符 - > < >= <= - 邏輯運算符 - && || ! - 非空對象 非0數字 非空字元串 都為true 其他為false - 語句 "幾乎和java一樣" - if ... else ... - for(){}方式 - 函數 "用來完成指定操作的代碼片段,在java中叫方法,在js中叫函數" - 方式1: 普通函數 " function 函數名稱(參數列表){ ... }" - 方式2(匿名函數): "var 函數名稱 = function(參數列表){ ... }" - 函數返回值:在函數中直接使用return返回結果即可 - 註意事項:參數列表中的參數可以不寫類型 - 事件 "具體的某件事情" - 單擊事件: onclick "單擊滑鼠時觸發" - 表單提交事件: onsubmit "提交form表單時觸發" - 頁面載入成功事件: onload "當頁面載入完畢後觸發" - 事件和事件源的綁定 - 方式1:綁定事件 " 實現方式:通過標簽的事件屬性 例如:<xxx onclick="函數名(參數列表)"></xxx>" - 方式2:派發事件 " 實現方式:獲取標簽對象(元素) 對象.事件名稱=function(){}" - 使用步驟: - 1.確定事件 - 2.編寫函數 - 獲取元素 - 處理元素 - BOM(瀏覽器對象模型):操作瀏覽器 - window 視窗 - 常用屬性 "通過它獲取其他的四個對象 eg:window.history == history 註意:使用window的對象或屬性時,window可以省略不寫" - 常用方法 - 定時器 - var 定時器id = setInterval() 設置周期執行定時器 - 格式1:setInterval(函數名稱,毫秒值); "周期執行,每隔多少毫秒執行一次指定函數" - 註意:每個定時器都會返回一個定時器id,定時器id主要用在清除定時器時. - 格式2:setInterval("函數名稱(參數列表)",毫秒值); - "周期執行,每隔多少毫秒執行一次指定函數 可傳遞參數" - clearInterval() 清除周期執行定時器 - 使用方式:clearInterval(定時器id) "作用:將正在使用的定時器清除" - setTimeout() 單次執行定時器 - 格式1:setTimeout(函數名稱,毫秒值); "單次執行,多少毫秒後執行指定函數,只執行一次" - 格式2:setTimeout("函數名稱(參數列表)",毫秒值); "單次執行,多少毫秒後執行指定函數,只執行一次 可傳遞參數" - 註意:每個定時器都會返回一個定時器id,定時器id主要用在清除定時器時. - clearTimeout() - 使用方式:clearTimeout(定時器id) - 警告框 - alert(); - 對話框 - prompt(); "可以傳入兩個參數,第一個為提示信息,第二個為預設值" - 確認框 - confirm(); "可以傳入一個參數,為確認信息" - 擴展 - 打開 open(url); - 關閉 colse(); - history 歷史 - 常用方法 - forward(); 下一個頁面 - back(); 返回上一個頁面 - go(Number); ★ - go(number); 向後跳轉幾個頁面 - go(-number); 向前跳轉幾個頁面 - location 連接 ★★ - 常用屬性 - href - location.href; 得到當前頁面的路徑 - location.href=url; 跳向指定的頁面 - navigator 瞭解 - screen 瞭解 - DOM(文檔對象模型):操作文檔 (明天內容) - 獲取一個元素(標簽)對象 - var obj = document.getElementById("id值"); "通過id獲取一個標簽對象" - 獲取對象中的value值 "通過對象的value屬性 對象.value;" 回顧: javaScript:直譯式的腳本語言,直接嵌入html使用即可 js和html整合: 方式1:內聯式 通過script標簽實現,直接在標簽體中編寫js代碼即可 方式2:外聯式(首先要編寫外部的js文件,尾碼名以*.js結尾) 通過script標簽的src屬性實現 js組成部分: ECMAScript:核心語法 變數聲明 var 變數名稱 = 初始化值; 數據類型 原始類型:(5種) Undefined: undefined var age; Number: String: Null: null Boolean: typeof 對象; 引用類型: 運算符 等性運算符: == != === !== 關係運算符: > < >= <= 邏輯運算符: && || ! "abc" || false "abc" || "123" "abc" && "123" "abc" && false 語句 if("123"){} for(){} 函數 方式1:普通函數 function 函數名(){} 方式2:匿名函數 var 函數名 = function (參數,參數){} 調用函數: 函數名(參數,參數); 返回值: return 返回值; 事件 onclick:單擊事件 onsubmit:表單提交事件 onload:頁面載入成功事件 事件和事件源綁定 方式1:綁定事件 通過標簽的事件屬性 <xxx onclick = "func()"></xxx> 方式2:派發事件 a.獲取事件源(獲取標簽對象) var 對象 = document.getElementById("id"); b.給事件源派發事件 對象.事件名稱 = function(){ .... } BOM:操作瀏覽器 window:視窗 屬性: 通過window獲取其他的四個對象即可.使用window的屬性或方法的時候window可以省略不寫 方法: 定時器: 周期執行: var interId = setInterval(); setInterval("函數名稱()",毫秒值); setInterval(函數名稱,毫秒值); clearInterval(id); 單次執行: var timeId = setTimeout(); clearTimeout(id); 警告框: 對話框: 確認框: 打開和關閉: history:歷史 方法: forward(); back(); go(number); location:連接 ★★ 屬性: href location.href; location.href = url; DOM:操作文檔 var 對象 = document.getElementById("id"); 對象.屬性名稱; 獲取 對象.屬性名稱 = 值; 設置 ///////////////////////////////// 案例1-完善表單校驗 需求分析: 當表單提交的時候,校驗表單中的用戶名和密碼是否符合格式,如果不符合,則在相應的輸入框後面填寫提示信息且不允許表單提交, 反之可以提交 技術分析: 事件 正則表達式: DOM對象: /////////////////////////// DOM: 操作value屬性 獲取value屬性的值: 獲取一個標簽對象: var 標簽對象 = document.getElementById(); 獲取value屬性的值: 標簽對象.value; 設置value屬性的值: 獲取一個標簽對象: var 標簽對象 = document.getElementById(); 設置value屬性的值 標簽對象.value = 值; 操作標簽體: 獲取標簽體內容: 獲取一個標簽對象: var 標簽對象 = document.getElementById(); 獲取標簽體的內容: 標簽對象.innerHTML; 設置標簽體內容: 獲取一個標簽對象: var 標簽對象 = document.getElementById(); 設置標簽體的內容: 標簽對象.innerHTML = "<xxx>值</xxx>"; 正則表達式: 1.編寫正則表達式 用戶名:var zz = /^[a-z0-9_-]{3,16}$/; 密碼:var zz = /^[a-z0-9_-]{6,18}$/; 校驗為空: /^\s*$/ 2.校驗 var str = "123"; zz.test(str); Boolean /////////////////////// 步驟分析: 1.確定事件(表單提交事件) <form onsubmit="retrun checkForm()"></form> <form id="formId"></form> 2.編寫checkForm函數 function checkForm(){ //0/設置全局開關 var flag = true; //a.獲取用戶名和密碼輸入框對象 var 對象 = document.getElementById("id"); //b.獲取用戶名和密碼的值 var val = 對象.value; //c.編寫正則表達式 //d.校驗 if(zz.test(val)){ //校驗不通過 給對應的span標簽中填寫提示信息 flag = false; }else{ //校驗通過 給對應的span標簽中填寫提示信息 } //e.返回值 return flag; } 案例2-表格各行換色 需求分析: 當頁面載入成功後,給表格的奇數行和偶數行添加不同的背景顏色 技術分析: 事件 DOM: ////////////////////// 步驟分析: 1.確定事件(頁面載入成功事件) onload = function(){ } 2.編寫匿名函數 a.獲取當前頁面所有行對象 var trObjArr = document.getElementsByTagName("tr"); b.遍曆數組對象,給計數行和偶數行添加不同的背景顏色 for(var i=0;i<trObjArr.length;i++){ if(i%2==0){ trObjArr[i].style.backgroundColor = "顏色"; }else{ trObjArr[i].style.backgroundColor = "顏色"; } } 案例3-覆選框全選和全不選 需求分析: 當點擊頭部的覆選框的時候,要使其他覆選框的狀態和頭部的保持一致. 技術分析: 單擊事件 DOM 操作元素的checked屬性 ///////////////////////////// 步驟分析: 1.確定事件(單擊事件) 給頭部的覆選框添加單擊事件 2.編寫函數 a.獲取頭部覆選框狀態 對象.checked; b.獲取其他的覆選框對象 c.遍歷其他的覆選框對象數組,分別給每一個覆選框對象設置checked屬性 案例4-省市二級聯動 需求分析: 當省份的下拉選改變的時候,根據選中的省份查詢其所對應的市,將所對應的市,展示到市的下拉選中. 技術分析: 改變事件 數組 Dom操作 ///////////////////// 步驟分析: 1.確定事件(改變事件) 給省份的下拉選添加改變事件 2.編寫changePro函數 function changePro(){ a.獲取選中省份所對應的市數組(value) var cityArr = arr[value]; b.獲取市的下拉選對象 var cityObj = document.getElementById("cityId"); c.遍歷市數組,將每一個市拼成option追加到市的下拉選中 cityObj.innerHTML += ""; }