JS基礎操作
阿新 • • 發佈:2018-12-23
一、分支結構
1、if語句
-
if 基礎語法
if (條件表示式) { 程式碼塊; } // 當條件表示式結果為true,會執行程式碼塊;反之不執行 // 條件表示式可以為普通表示式 // 0、undefined、null、""、NaN為假,其他均為真
-
if 複雜語法
// 1.雙分支 if (表示式1) { 程式碼塊1; } else { 程式碼塊2; } // 2.多分支 if (表示式1) { } else if (表示式2) { } ...else if (表示式2) { } else { }
-
if 巢狀
if (表示式1) { if (表示式2) { }... }...
2、switch語句
switch (表示式) { case 值1: 程式碼塊1; break; case 值2: 程式碼塊2; break; default: 程式碼塊3; } // 1.表示式可以為 整數表示式 或 字串表示式 // 2.值可以為 整數 或 字串 // 3.break可以省略 // 4.default為預設程式碼塊,需要出現在所有case最下方,在所有case均未被匹配時執行
二、迴圈結構
1、for迴圈
for (迴圈變數①; 條件表示式②; 迴圈變數增量③) { 程式碼塊④; } // 1.迴圈變數可以在外、在內宣告 // 2.執行邏輯 ① ②④③ ... ②④③ ②,入口為①,出口為②,②④③個數為[0, n]
2、while迴圈
while (條件表示式) { 程式碼塊; }
3、do...while迴圈
do { 程式碼塊; } while (條件表示式);
4、for...in迴圈
obj = {"name": "zero", "age": 8} for (k inobj) { console.log(k, obj[k]) } // 用於遍歷物件:遍歷的結果為key,通過[]語法訪問對應的value
5、for...of迴圈
iter = ['a', 'b', 'c']; for (i in iter) { console.log(iter[i]) } // 1.用於遍歷可迭代物件:遍歷結果為index,通過[]語法訪問對應的value // 2.ES6新增,可迭代物件有 字串、陣列、Map、Set、Anguments、NodeList等
6、break,continue關鍵詞
break:結束本層迴圈 continue:結束本次迴圈進入下一次迴圈
三、異常處理
try { 易錯程式碼塊; } catch (err) { 異常處理程式碼塊; } finally { 必須邏輯程式碼塊; } // 1.err為儲存錯誤資訊的變數 // 2.finally分支在異常出現與否都會被執行 throw "自定義異常" // 必要的時候丟擲自定義異常,要結合對應的try...catch使用
四、函式初級
1、函式的定義
function 函式名 (引數列表) { 函式體; } var 函式名 = function (引數列表) { 函式體; }ES5
let 函式名 = (引數列表) => { 函式體; } 匿名函式 function (引數列表) { 函式體; } // 匿名函式需要自呼叫 (function (引數列表) { 函式體; })(引數列表);ES6
2、函式的呼叫
-
函式名(引數列表)
3、函式的引數
-
個數不需要統一
function fn (a, b, c) { console.log(a, b, c) // 100 undefined undefined } fn(100) function fn (a) { console.log(a) // 100 } fn(100, 200, 300) // 200,300被丟棄
-
可以任意位置具有預設值
function fn (a, b=20, c, d=40) { console.log(a, b, c, d) // 100 200 300 40 } fn(100, 200, 300)
-
通過...語法接收多個值
function fn (a, ...b) { console.log(a, b) // 100 [200 300] } fn(100, 200, 300) // ...變數必須出現在引數列表最後
4、返回值
function fn () { return 返回值; } // 1.可以空return操作,用來結束函式 // 2.返回值可以為任意js型別資料 // 3.函式最多隻能擁有一個返回值
五、事件初級
-
onload:頁面載入完畢事件,只附屬於window物件
-
onclick:滑鼠點選時間
-
onmouseover:滑鼠懸浮事件
-
onmouseout:滑鼠移開事件
六、JS選擇器
1、getElement系列
// 1.通過id名獲取唯一滿足條件的頁面元素 document.getElementById('id名'); // 該方法只能由document呼叫 // 2、通過class名獲取所有滿足條件的頁面元素 document.getElementsByClassName('class名'); // 該方法可以由document及任意頁面元素物件呼叫 // 返回值為HTMLCollection (一個類陣列結果的物件,使用方式同陣列) // 沒有匹配到任何結果返回空HTMLCollection物件 ([]) // 3.通過tag名獲取所有滿足條件的頁面元素 document.getElementsByTagName('tag名'); // 該方法可以由document及任意頁面元素物件呼叫 // 返回值為HTMLCollection (一個類陣列結果的物件,使用方式同陣列) // 沒有匹配到任何結果返回空HTMLCollection物件 ([])
2、querySelect系列
// 1.獲取第一個匹配到的頁面元素 document.querySelector('css語法選擇器'); // 該方法可以由document及任意頁面物件呼叫 // 2.獲取所有匹配到的頁面元素 document.querySelectorAll('css語法選擇器'); // 該方法可以由document及任意頁面物件呼叫 // 返回值為NodeList (一個類陣列結果的物件,使用方式同陣列) // 沒有匹配到任何結果返回空NodeList物件 ([])
3、id名
-
可以通過id名直接獲取對應的頁面元素物件,但是不建議使用
七、JS操作頁面內容
-
innerText:普通標籤內容(自身文字與所有子標籤文字)
-
innerHTML:包含標籤在內的內容(自身文字及子標籤的所有)
-
value:表單標籤的內容
-
outerHTML:包含自身標籤在內的內容(自身標籤及往下的所有)
八、JS操作頁面樣式
-
讀寫 style屬性 樣式
div.style.backgroundColor = 'red'; // 1.操作的為行間式 // 2.可讀可寫 // 3.具體屬性名採用小駝峰命名法
-
只讀 計算後 樣式
// eg: 背景顏色 // 推薦 getComputedStyle(頁面元素物件, 偽類).getPropertyValue('background-color'); // 不推薦 getComputedStyle(頁面元素物件, 偽類).backgroundColor;
// IE9以下 頁面元素物件.currentStyle.getAttribute('background-color'); 頁面元素物件.currentStyle.backgroundColor; // 1.頁面元素物件由JS選擇器獲取 // 2.偽類沒有的情況下用null填充 // 3.計算後樣式為只讀 // 4.該方式依舊可以獲取行間式樣式 (獲取邏輯最後的樣式
-
結合 css 操作樣式
頁面元素物件.className = ""; // 清除類名 頁面元素物件.className = "類名"; // 設定類名 頁面元素物件.className += " 類名"; // 新增類名
// box.style.樣式名 ==> 可以設值,也可以獲取,但操作的只能是行間式 // getComputedStyle(box, null).樣式名 ==> 只能獲取值,不能設值, 能獲取所有方式設定的值(行間式 與 計算後樣式) // 注: 獲取計算後樣式,需要關注值的格式
-
標籤內容
// box.innerHTML // 可以設值, 也可以獲取值, 能解析html語法程式碼 // box.outerHTML // 獲取包含自身標籤資訊的所有子內容資訊