JavaScript语句(七)

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、处理未捕获的异常

在浏览器中:

<!-- 每当运行时发生错误时,onerror方法会在 window 对象上触发 error 事件 -->
<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(八)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值