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) // 1throw 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 中的两个重要属性:stack和message。
try子句将包含可能产生异常的代码,catch子句会在发生异常时执行。
对于异步代码,最好使用async/await配合try-catch语句。
可以捕获未处理的异常,这可以防止应用程序崩溃。
| 上一篇文章 | 下一篇文章 |
|---|---|
| JavaScript对象详解(六) | JavaScript之BOM(八) |
相关文章:
JavaScript语句(七)
JavaScript语句 1、条件语句2、循环语句3、break 和 continue 语句4、异常处理语句4.1、抛出异常4.2、捕获异常4.3、处理异步代码块中的异常4.3.1、Promise4.3.2、async/await try-catch 4.4、处理未捕获的异常4.5、总结 1、条件语句 名称描述if当指定条件为 true 时…...
孪生诱捕网络在欺骗防御领域的应用
信息化在给人们带来便利的同时,网络信息安全问题也日益凸显。尤其是随着网络攻击由传统的盲目、直接、粗暴的方式转变为目前的精确化、持久化、隐匿式的恶意攻击,攻击过程中只需发现并利用一个未被修复的漏洞或不安全配置即可击破边界防御,试图将攻击者拒之门外的安全防护方…...
【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路
前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行…...
ARM体系结构与异常处理
目录 一、ARM体系架构 1、ARM公司概述 ARM的含义 ARM公司 2.ARM产品系列 3.指令、指令集 指令 指令集 ARM指令集 ARM指令集 Thumb指令集 (属于ARM指令集) 4.编译原理 5.ARM数据类型 字节序 大端对齐 小端对齐 …...
招聘网站—Hive数据分析
招聘网站—Hive数据分析 第1关:统计最热门的十种职业(招聘人数最多) #进入hive hive#在hive中创建数据库 mydb create database mydb;#使用数据库 mydb use mydb;#创建表 recruitcleaned 并使用"/t"分割字段 create table re…...
双指针滑动窗口整理1——长度最小的子数组、水果成篮
209. 长度最小的子数组 这篇文章主要是想针对这题 209. 长度最小的子数组,总结一下双指针或是滑动窗口的小细节。对于暴力算法,我们就不再阐释了。 算法原理: 滑动窗口主要是通过控制循环终止节点j,并移动i来缩放窗口。具体而言…...
textarea之换行、replace、\n、br、innerHTML
文章目录 前言换行符介绍JavaScript部分html部分 前言 textarea标签本身不识别换行功能,回车换行用的是\n换行符,输入时的确有换行的效果,但是渲染时就只是一个空格了。这时就需要利用换行符\n和br标签的转换进行处理。 换行符介绍 表格 序…...
SKD240
SKD240 系列智能电力仪表 SKD240 系列智能电力仪表是陕西斯科德智能科技有限公司自主研发、生产的。 产品概述 - 点击了解详情 SKD240采用先进的微处理器和数字信号处理技术(内置主芯片采用32位单片机, 采用32位浮点型真有效值处理数据),测量…...
大数据采集怎么做呢?
随着互联网的发展,大数据已经成为了一个非常热门的话题。大数据采集是大数据分析的第一步,也是非常重要的一步。本文将介绍大数据采集的基本概念、采集的方法、采集的难点以及采集的注意事项等方面,希望能够对大家有所帮助。 一、大数据采集…...
【学习日记】操作系统-入门知识-个人学习记录
我的学习笔记链接: MyLinuxProgramming 参考资料 CSAPP操作系统导论OSTEP √APUEhttps://stevens.netmeister.org/631软件调试王道-操作系统操作系统真象还原小林coding-图解系统https://xiaolincoding.com嵌入式软件开发笔试面试指南Linux是怎样工作的2020 南京大…...
ChatGPT自动生成思维导图
🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉 ChatGPT自动生成思维导图 文章目录 🍐问题引入🍐具体操作markmapXmind 🐳结语 …...
count(0)、count(1)和count(*)、count(列名) 的区别
当我们对一张数据表中的记录进行统计的时候,习惯都会使用 count 函数来统计,但是 count 函数传入的参数有很多种,比如 count(1)、count(*)、count(字段) 等。 到底哪种效率是最好的呢?是不是 count(*) 效率最差? 一.…...
python爬虫入门,10分钟就够了,这可能是我见过最简单的基础教学
一、基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据&…...
华为OD机试真题 Java 实现【记票统计】【牛客练习题】
一、题目描述 请实现一个计票统计系统。你会收到很多投票,其中有合法的也有不合法的,请统计每个候选人得票的数量以及不合法的票数。 (注:不合法的投票指的是投票的名字不存在n个候选人的名字中!!) 数据范围:每组输入中候选人数量满足 1≤n≤100 ,总票数量满足 1≤…...
.NET并行计算
一段很简答的,模拟多任务并发的测试代码。 private void button_Click(object sender, EventArgs e) { List<Action> actions new List<Action>(); for (int i 0; i < 30; i) { //匿…...
Python:Python编程:金融量化交易
金融量化交易 1. numpy2. scipy3. Pandas3.1 : Series 3.2: DataFrame代码示例 在金融量化交易中,下面几个模块是应用的比较广泛的 numpy (Numberic Python) : 提供大量的数值编程工具,可以方便的处理:向量矩阵等运算,…...
「HTML和CSS入门指南」canvas 标签详解
什么是 canvas 标签? 在 HTML 中,canvas 标签用于在网页中绘制图形、动画和其他复杂的视觉效果。它是一个独立的标签,并且可以使用 JavaScript 来操纵和渲染其内容。使用 canvas 标签可以帮助您创造交互性更强、生动更具吸引力的用户界面和体验。 canvas 标签的基本语法 以…...
【JS】1699- 重学 JavaScript API - WebSockets API
❝ 前期回顾: 1. Page Visibility API 2. Broadcast Channel API 3. Beacon API 4. Resize Observer API 5. Clipboard API 6. Fetch API 7. Performance API 8. Web Storage API ❞ WebSockets API 提供了一种在客户端和服务器之间建立持久连接的机制,使…...
String s = new String(“xyz“) 创建了几个对象?
这个问题相信每个学习 java 的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为还是有必…...
STL库(1)
STL库(1) vectorvector介绍vector使用初始化元素访问内存扩容插入删除 listlist介绍初始化,元素访问插入删除元素 vector和list区别 vector vector介绍 vector是可以改变大小的数组的容器。其内存结构和数组一样,使用连续的存储…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
