Skip to content

流程控制和错误处理

1.块级作用域

ES5没有块级作用域得说法

js
ES5
var a = 1;
{
    var a = 2
}
a //2

ES6
let a = 1

{
    let a = 2
 
}
a //1

2.条件判断语句

用于根据条件返回结果

  • if ... else
  • switch

2.1 if语句

if else 语句是常用得一种重要的条件判断。在js中false的等效值有。

  • false
  • undefined
  • null
  • 0
  • NAN
  • ''(空字符串)
js
if(condition) {
    //do sth 避免在此处写return
}else{
    //do sth
}

//特别注意
let a = {}
a == false //false
a == true //false //这里是永假的

if(a) {
    //a这里是永真
    
    
}

2.2 switch语句

js
let a = 'a'
switch(a) {
    case 'a': 
        console.log(111)
        break;
        
    default:
        console.log('nothing')
        break;    
}

3.异常处理

当throw语句抛出错误的时候,可以用try...catch捕获并处理

  • throw 语句:抛出异常,后面可以是任何表达式
js
throw 'wrong!!!'
throw 404
throw {msg: 'err'}
  • try ... catch语句捕捉错误
js
function fn() {
    throw 'err'
}
try {
    fn()
}catch(err) {
    console.log(err) //捕捉 err
}finally {
    //do sth
}

try...catch 经常用于网络请求的情况下
function getData() {
    try {
        let res = fetch()
    }catch(err) {
        console.log(err)
    }
}