当前位置: 首页 > news >正文

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 中的两个重要属性:stackmessage
 
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 时&#xf…...

孪生诱捕网络在欺骗防御领域的应用

信息化在给人们带来便利的同时,网络信息安全问题也日益凸显。尤其是随着网络攻击由传统的盲目、直接、粗暴的方式转变为目前的精确化、持久化、隐匿式的恶意攻击,攻击过程中只需发现并利用一个未被修复的漏洞或不安全配置即可击破边界防御,试图将攻击者拒之门外的安全防护方…...

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入&#xff0c;我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段&#xff0c;需要在每个版本中&#xff0c;对某些新增接口进行性能测试&#xff0c;有时还需要在一天中的不同时段分别进行…...

ARM体系结构与异常处理

目录 一、ARM体系架构 1、ARM公司概述 ARM的含义 ARM公司 2.ARM产品系列 3.指令、指令集 指令 指令集 ARM指令集 ARM指令集 Thumb指令集 &#xff08;属于ARM指令集&#xff09; 4.编译原理 5.ARM数据类型 字节序 大端对齐 小端对齐 …...

招聘网站—Hive数据分析

招聘网站—Hive数据分析 第1关&#xff1a;统计最热门的十种职业&#xff08;招聘人数最多&#xff09; #进入hive hive#在hive中创建数据库 mydb create database mydb;#使用数据库 mydb use mydb;#创建表 recruitcleaned 并使用"/t"分割字段 create table re…...

双指针滑动窗口整理1——长度最小的子数组、水果成篮

209. 长度最小的子数组 这篇文章主要是想针对这题 209. 长度最小的子数组&#xff0c;总结一下双指针或是滑动窗口的小细节。对于暴力算法&#xff0c;我们就不再阐释了。 算法原理&#xff1a; 滑动窗口主要是通过控制循环终止节点j&#xff0c;并移动i来缩放窗口。具体而言…...

textarea之换行、replace、\n、br、innerHTML

文章目录 前言换行符介绍JavaScript部分html部分 前言 textarea标签本身不识别换行功能&#xff0c;回车换行用的是\n换行符&#xff0c;输入时的确有换行的效果&#xff0c;但是渲染时就只是一个空格了。这时就需要利用换行符\n和br标签的转换进行处理。 换行符介绍 表格 序…...

SKD240

SKD240 系列智能电力仪表 SKD240 系列智能电力仪表是陕西斯科德智能科技有限公司自主研发、生产的。 产品概述 - 点击了解详情 SKD240采用先进的微处理器和数字信号处理技术&#xff08;内置主芯片采用32位单片机, 采用32位浮点型真有效值处理数据&#xff09;&#xff0c;测量…...

大数据采集怎么做呢?

随着互联网的发展&#xff0c;大数据已经成为了一个非常热门的话题。大数据采集是大数据分析的第一步&#xff0c;也是非常重要的一步。本文将介绍大数据采集的基本概念、采集的方法、采集的难点以及采集的注意事项等方面&#xff0c;希望能够对大家有所帮助。 一、大数据采集…...

【学习日记】操作系统-入门知识-个人学习记录

我的学习笔记链接&#xff1a; MyLinuxProgramming 参考资料 CSAPP操作系统导论OSTEP √APUEhttps://stevens.netmeister.org/631软件调试王道-操作系统操作系统真象还原小林coding-图解系统https://xiaolincoding.com嵌入式软件开发笔试面试指南Linux是怎样工作的2020 南京大…...

ChatGPT自动生成思维导图

&#x1f34f;&#x1f350;&#x1f34a;&#x1f351;&#x1f352;&#x1f353;&#x1fad0;&#x1f951;&#x1f34b;&#x1f349; ChatGPT自动生成思维导图 文章目录 &#x1f350;问题引入&#x1f350;具体操作markmapXmind &#x1f433;结语 &#x1f…...

count(0)、count(1)和count(*)、count(列名) 的区别

当我们对一张数据表中的记录进行统计的时候&#xff0c;习惯都会使用 count 函数来统计&#xff0c;但是 count 函数传入的参数有很多种&#xff0c;比如 count(1)、count(*)、count(字段) 等。 到底哪种效率是最好的呢&#xff1f;是不是 count(*) 效率最差&#xff1f; 一.…...

python爬虫入门,10分钟就够了,这可能是我见过最简单的基础教学

一、基础入门 1.1什么是爬虫 爬虫(spider&#xff0c;又网络爬虫)&#xff0c;是指向网站/网络发起请求&#xff0c;获取资源后分析并提取有用数据的程序。 从技术层面来说就是 通过程序模拟浏览器请求站点的行为&#xff0c;把站点返回的HTML代码/JSON数据/二进制数据&…...

华为OD机试真题 Java 实现【记票统计】【牛客练习题】

一、题目描述 请实现一个计票统计系统。你会收到很多投票,其中有合法的也有不合法的,请统计每个候选人得票的数量以及不合法的票数。 (注:不合法的投票指的是投票的名字不存在n个候选人的名字中!!) 数据范围:每组输入中候选人数量满足 1≤n≤100 ,总票数量满足 1≤…...

.NET并行计算

一段很简答的&#xff0c;模拟多任务并发的测试代码。 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&#xff1a; DataFrame代码示例 在金融量化交易中&#xff0c;下面几个模块是应用的比较广泛的 numpy (Numberic Python) : 提供大量的数值编程工具&#xff0c;可以方便的处理&#xff1a;向量矩阵等运算&#xff0c;…...

「HTML和CSS入门指南」canvas 标签详解

什么是 canvas 标签? 在 HTML 中,canvas 标签用于在网页中绘制图形、动画和其他复杂的视觉效果。它是一个独立的标签,并且可以使用 JavaScript 来操纵和渲染其内容。使用 canvas 标签可以帮助您创造交互性更强、生动更具吸引力的用户界面和体验。 canvas 标签的基本语法 以…...

【JS】1699- 重学 JavaScript API - WebSockets API

❝ 前期回顾&#xff1a; 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 提供了一种在客户端和服务器之间建立持久连接的机制&#xff0c;使…...

String s = new String(“xyz“) 创建了几个对象?

这个问题相信每个学习 java 的同学都不陌生&#xff0c;作为一个经典的面试题&#xff0c;到现在工作这么多年了我真是认为挺操蛋的一个问题&#xff0c;在网上到现在你仍然可以看见很多讨论这个问题的人&#xff0c;其中不乏工作很多年的人都有争论&#xff0c;我认为还是有必…...

STL库(1)

STL库&#xff08;1&#xff09; vectorvector介绍vector使用初始化元素访问内存扩容插入删除 listlist介绍初始化&#xff0c;元素访问插入删除元素 vector和list区别 vector vector介绍 vector是可以改变大小的数组的容器。其内存结构和数组一样&#xff0c;使用连续的存储…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...