【重溫基礎】2.流程控制和錯誤處理

pingan8787發表於2018-12-11

本文是 重溫基礎 系列文章的第二篇,需要讓自己靜下心來,學習,養成好習慣。

系列目錄:

本章節複習的是JS中的控制流語句,讓我們能實現更多的互動功能。

注意一點:在ES6之前,JS是沒有塊作用域的,如果在語句塊外部宣告的變數,如果在塊內部宣告一個相同名稱的變數,那麼程式將取後宣告的這個變數的值:

var a = 1;
{
var a = 2;

}a;
// 2複製程式碼

但是ES6開始,用let宣告的變數是塊作用域的:

let a = 1;
{
let a = 2;

}a;
// 1複製程式碼

1.條件判斷語句

用於根據指定條件返回結果,常見的是if...elseswitch

if…else語句

若條件為,則執行if後面的語句,若條件為,則執行else後面的語句:

if(condition){ 
// do something
}else{
// else 為可選 // do something
}複製程式碼

False等效值
在JS中下面的值常常被計算為false

  • false
  • undefined
  • null
  • 0
  • NaN
  • 空字串(””)

注意
不要使用原始布林值truefalse 與 Boolean物件的真和假混淆:

let a = new Boolean(false);
// Boolean 
{true
}
if (a);
// 永真if (a == true);
// 永假 複製程式碼

2.switch語句

通過匹配表示式的值到每個case標籤,若匹配成功則執行相關語句:

switch ( 'leo' ){ 
case 'pingan': // do something break;
// 可選 case 'leo': // do something break;
default: // 都不匹配 則執行預設 // do something break;

}複製程式碼

break為可選,目的用於保證在正確匹配後,能跳出程式的switch語句,並繼續執行其他程式碼,若沒有break則程式會繼續執行下一個case語句。

3.異常處理語句

throw語句丟擲的異常,我們可以使用try...catch捕獲並處理,這裡需要先介紹兩個概念:

throw語句:

用於丟擲異常,後面可以是任何表示式:

throw "error !";
throw 404;
throw {msg: 'err'
};
複製程式碼

try…catch語句:

用於捕獲異常,try後面是程式正常時候執行的程式,catch後面是當前面有錯誤丟擲的時候執行,並且捕獲錯誤資訊作為引數,並且在catch塊執行完成,引數不可再用。

function f(){ 
throw 'test error!'
}try{
f();
console.log('success');

}catch (err){
// err 為前面返回的錯誤資訊 console.log(err);
console.log('failed');

}// test error!// failed複製程式碼

通常在try...catch後還有一個finally語句塊,用於不論前面是否有報錯,都會執行finally語句:

try{ 
// do something
}catch(err){
// do something
}finally{
// do something
}複製程式碼

try...catch常常也用在做網路請求的情況下:

function getData (){ 
try{
let a = fetch(url);

}catch(err){
console.log(err);

}
}複製程式碼

參考資料

1.MDN 流程控制與錯誤處理


本部分內容到這結束

Author 王平安
E-mail pingan8787@qq.com
博 客 www.pingan8787.com
微 信 pingan8787
每日文章推薦 github.com/pingan8787/…
JS小冊 js.pingan8787.com

來源:https://juejin.im/post/5c0fcdadf265da61117a2751

相關文章