JavaScript语句(七)

JavaScript语句

      • 1、条件语句
      • 2、循环语句
      • 3、break 和 continue 语句
      • 4、异常处理语句
        • 4.1、抛出异常
        • 4.2、捕获异常
        • 4.3、处理异步代码块中的异常
          • 4.3.1、Promise
          • 4.3.2、async/await + try-catch
        • 4.4、处理未捕获的异常
        • 4.5、总结

1、条件语句

名称 描述
if 当指定条件为 true 时,执行 if 语句对应的代码
if…else 当条件为 true 时,执行 if 语句对应的代码 当条件为 false 时,执行 else 语句对应的代码
if…else if… 满足条件时,执行它所对应的代码
case 在 switch 中使用,表示要匹配的每一种情况
default 在 switch 中使用,表示默认情况,当不满足所有的 case 条件时,会执行默认情况
switch 根据不同的条件来执行不同的动作。
boolean_expression ? true_value : false_value 三元运算符,当条件表达式 boolean_expression 为真,执行表达式 true_value,为假时执行表达式 false_value

2、循环语句

名称 描述
for 循环执行一段代码
for…in/for…of 遍历对象属性或数组 / 遍历元素的值(数组的值)
while 条件为真时循环执行代码块
do-while 是while 循环的变体,语法: do{ 循环体 }while(循环执行条件)
注意事项: 1、do-while 循环在检查条件之前一定会执行一次循环体
2、如果条件为真,就会继续执行循环体,否则就会终止循环

3、break 和 continue 语句

名称 描述
break 用于退出循环
1、在 switch 中使用,用于跳出 switch 语句
2、在循环 for、while 中使用,直接跳出循环
continue 跳出当前循环,继续执行下一次循环

4、异常处理语句

4.1、抛出异常

// 创建对象类型UserException
function UserException (message){
  this.message=message;
  this.name="UserException";
}
// 使用时将异常转换为漂亮的字符串(例如输出错误至控制台)
UserException.prototype.toString = function (){
  return this.name + ': "' + this.message + '"';
}
// 创建对象类型的实例并抛出它
throw new UserException("Value too high");

4.2、捕获异常

// 我们可以捕获程序产生的异常和运行时异常,但无法捕获 JavaScript 语法错误
try {
  // 要运行的代码
} catch (e) {
  // 发生异常时要运行的代码
} finally { //可选
  // 无论发生异常都始终执行的代码
}

4.3、处理异步代码块中的异常

4.3.1、Promise
Promise.resolve('1')
  .then(res => {
    console.log(res) // 1
    throw new Error('go wrong') // 抛出异常
})
.then(res => {
  console.log(res) // 不会被执行
})
.catch(err => { 
  console.error(err) // 捕获并处理异常 ——> Error: go wrong
})
4.3.2、async/await + try-catch
async function func() {
  try {
    await nonExistentFunction()
  } catch (err) {
    console.error(err) // ReferenceError: nonExistentFunction is not defined 
  }
}

4.4、处理未捕获的异常

在浏览器中:


<img src="logo.png" onerror="alert('Error loading picture.')" />

在Node.js中:

//适用于同步-可以传递一个回调来处理异常。如果我们尝试捕获这个未捕获的异常,进程将不会终止,因此我们必须手动完成
process.on('uncaughtException', () => {})
//适用于异步-unhandledRejection事件
process.on('unhandledRejection', () => {})

4.5、总结

throw 语句用于生成用户定义的异常。在运行时,当 throw 遇到语句时,当前函数的执行将停止,控制权将传递给 catch 调用堆栈中的第一个子句。如果没有 catch 子句,程序将终止。
 
JavaScript 有一些内置的异常类型,最值得注意的是 Error,它返回 Error 中的两个重要属性:stackmessage
 
try 子句将包含可能产生异常的代码,catch 子句会在发生异常时执行。
 
对于异步代码,最好使用 async/await 配合 try-catch 语句。
 
可以捕获未处理的异常,这可以防止应用程序崩溃。


上一篇文章 下一篇文章
JavaScript对象详解(六) JavaScript之BOM(八)

你可能感兴趣的:(JavaScript,javascript,开发语言,ecmascript)