js--标签语法的使用
2024-10-10 09:36:31
前言
在日常开发中我们经常使用到递归、break、continue、return等语句改变程序运行的位置,其实,在 JavaScript 中还提供了标签语句,用于标记指定的代码块,便于跳转到指定的位置。本文来记录一下标签语句的使用方法。
正文
1.标签语句介绍
标签语句用于给语句加标签,标签可以与变量重名,它是一个独立的语法元素(既不是变量,也不是类型),其作用是标识”标签化语句(labeled statement)”相当于定位符,用于跳转到程序的任意位置,语法如下:
label: statement
例如:
hello:console.log("hello")
标签语句可以改变程序的执行流程,类似于break,continue和return。其中break和continue可以和标签一起使用。
2.标签语句使用
(1)标签语句和 break 配合使用,跳出特定的循环
let num = 0;
mylabel:
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
break mylabel;
}
num++;
}
}
console.log(num); // 55
在这个例子中, outermost 标签标识的是第一个 for 语句。正常情况下,每个循环执行 10 次,意味着 num++ 语句会执行 100 次,而循环结束时 console.log 的结果应该是 100。但是, break 语句带来了一个变数,即要退出到的标签。添加标签不仅让 break 退出(使用变量 j 的)内部循环,也会退出(使用变量 i 的)外部循环。当执行到 i 和 j 都等于 5时,循环停止执行,此时 num 的值是 55。
(2)标签语句和 continue 配合使用
let num = 0;
mylabel:
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
continue mylabel;
}
num++;
}
}
console.log(num); // 95
continue 语句会强制循环继续执行,但不是继续执行内部循环,而是继续执行外部循环。当 i 和 j 都等于 5 时,会执行 continue ,跳到外部循环继续执行,从而导致内部循环少执行 5 次,结果 num 等于 95。
写在最后
组合使用标签语句和 break 、 continue 能实现复杂的逻辑,但也容易出错。注意标签要使用描述性强的文本,而嵌套也不要太深。
以上就是本文的全部内容,希望给读者带来些许的帮助和进步,方便的话点个关注,小白的成长踩坑之路会持续更新一些工作中常见的问题和技术点。
最新文章
- CI 3.0.6 控制器打印base_url 地址不为 localhost的解决方法
- solr安装笔记与定时器任务
- Downloader调用WCF服务返回文件
- python3抓取异步百度瀑布流动态图片(一)查找post并伪装头方法
- ORA-12519, TNS:no appropriate service handler found
- C,C++容易被忽略的问题
- Codeforces Round #328 (Div. 2) D. Super M 虚树直径
- Javascript之计时
- ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明
- dotnet使用Selenium执行自动化任务
- C++中const用于函数重载
- Java常用日志框架介绍
- springmvc 对 jsonp 的支持
- 配置ssh无密钥登陆
- 使用Keras对交通标志进行分类
- Chimee - 简单易用的H5视频播放器解决方案
- Docker-常用命令(7)
- PXC添加新节点
- mydqldump 备份数单库 然后还原数据的时候报:ERROR 1881 (HY000) at line 52: Operation not allowed when innodb_forced_recovery >; 0.
- 2018.09.27 hdu4507吉哥系列故事——恨7不成妻(数位dp)
热门文章
- ES6基础之let、const
- JavaScript 特殊字符
- GUI容器之Panel
- Java数八大据类型的拓展
- python使用pip安装模块出错 Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None))
- 并发编程之:AQS源码解析
- Python之requests模块-session
- noip模拟46
- 【死磕NIO】— NIO基础详解
- 为老的vueCli项目添加vite支持