返回顶部
首页 > 资讯 > 精选 >如何检测和防止JavaScript死循环
  • 125
分享到

如何检测和防止JavaScript死循环

2023-06-21 21:06:30 125人浏览 八月长安
摘要

本篇内容主要讲解“如何检测和防止javascript死循环”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何检测和防止JavaScript死循环”吧!前言js死循环是怎么造成的呢!其实在我们写代

本篇内容主要讲解“如何检测和防止javascript死循环”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何检测和防止JavaScript死循环”吧!

前言

js死循环是怎么造成的呢!其实在我们写代码时一些不注意或漏写,就写出死循环,就如下面代码:

如何检测和防止JavaScript死循环

如果i++没有写上,这个就是死循环了,死循环的后果想知道的自己不防去试试。

死循环就是一段错误的阻止终止循环条件JavaScript代码。

无限循环是危险的,因为它会导致您运行代码的环境(浏览器或 nodejs 服务器)崩溃或冻结您的计算机,导致它停止响应。

for和while语句是一个无限循环的常见原因,所以本教程将帮助您了解如何检测和修复所造成的语句无限循环。

让我们从修复for语句中的无限循环开始。

在 for 语句中修复无限循环

一个for语句可能会导致一个无限循环,当你错误的第二表达式把赋值运算符,而不是一个比较运营商(在条件表达式)

下面是一个for会导致无限循环的语句示例。注意第二个表达式是如何i = 10:

for (let i = 0; i = 10; i++) {  console.log("Infinite loop");}

该for语句要求第二个表达式的计算结果false为终止循环。在上面的示例中,赋值运算符i = 10被放置为条件表达式,而不是像i < 10or之类的比较运算符i > 10。

由于赋值运算符的计算结果始终为true,因此该for语句不会停止打印"Infinite loop"到控制台,这可能会导致您的计算机死机。

要修复for上面的语句,您需要将第二个表达式替换为该for语句可以达到的内容。一个例子是使用比较运算符 ( =<, <, >, >=)

// the second expression is replaced with <for (let i = 0; i < 10; i++) {  console.log("Infinite loop");}

同样的错误还有另一个版本。这一次,第一个表达式和第二个表达式导致无限循环:

for (let i = 5; i > 0; i++) {  console.log("Infinite loop");}

从上面的代码可以看出,只要变量i大于,循环就会继续0。

由于 的值i已经大于0初始化时的值,因此第二个表达式将始终计算为true,从而导致无限循环。

为了修复上面的代码,第三个表达式必须减少i而不是增加它的值:

for (let i = 5; i > 0; i--) {  console.log("Infinite loop");}

另一个for可能导致无限循环的语句示例是省略括号内的所有三个表达式,如下所示:

for (;;) {  console.log("Infinite loop");}

但是上面的代码只能是故意写的,所以除非你想让你的电脑崩溃,否则你不应该在你的项目中使用它。

尽管for您编写的语句肯定会比上面的示例更复杂,但您仍然可以使用相同的原则来查找和修复语句中的错误。

首先,您需要确保放在for语句中的第二个表达式实际上可以计算为false.

如果第二个表达式已经正确,则开始检查第一个和第三个表达式。第一个表达式是否初始化了一个true在执行第二个表达式时始终计算为的值?

最后,第三个表达式是否正确递增或递减第一个表达式中初始化的变量的值?

总结一下:首先检查你的第二个表达式,然后按顺序检查第一个和第三个表达式。

接下来,让我们学习如何修复由while语句引起的无限循环。

在 while 语句中修复无限循环

一个while语句可以导致无限循环,当条件表达式括号始终计算里面放true:

while (true) {  console.log("Infinite loop");}

为了防止无限循环,while 语句的条件表达式必须能够计算为false。

编写while语句时最常见的错误之一是忘记修改用于条件表达式的变量的值。

请注意i以下示例中 never的值如何更改:

let i = 0; while (i < 6) {  console.log("Infinite loop");}

您需要增加语句体i内部的值,while以便在false执行循环时条件表达式的计算结果为:

let i = 0; while (i < 6) {  console.log("Infinite loop");  i++;}

无论您的while语句多么复杂,您都需要确保括号内的条件表达式while()可以计算为false.

如果仍然找不到导致无限循环的原因,则可以使用该console.log()语句打印条件表达式使用的变量的值:

let i = 0; while (i < 6) {  console.log("Infinite loop");  i++;  console.log(i);}

控制台日志可以帮助您查明错误的代码行并修复它。

到此,相信大家对“如何检测和防止JavaScript死循环”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何检测和防止JavaScript死循环

本文链接: https://lsjlt.com/news/300728.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何检测和防止JavaScript死循环
    本篇内容主要讲解“如何检测和防止JavaScript死循环”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何检测和防止JavaScript死循环”吧!前言Js死循环是怎么造成的呢!其实在我们写代...
    99+
    2023-06-21
  • 详解怎么检测和防止JavaScript死循环
    目录前言在 for 语句中修复无限循环在 while 语句中修复无限循环总结前言 Js死循环是怎么造成的呢!其实在我们写代码时一些不注意或漏写,就写出死循环,就如下面代码: 如果i...
    99+
    2024-04-02
  • JavaScript如何终止循环
    本篇内容介绍了“JavaScript如何终止循环”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • ogg怎么防止数据死循环同步
    这篇文章主要讲解了“ogg怎么防止数据死循环同步”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ogg怎么防止数据死循环同步”吧!最近在ORACLE 到MYS...
    99+
    2024-04-02
  • javascript两个函数相互调用防止死循环的方法是什么
    这篇文章主要介绍“javascript两个函数相互调用防止死循环的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript两个函数相互调用防止死循环的方法是什么”文章能帮助大家解...
    99+
    2023-07-05
  • 如何解决spring检测循环依赖
    今天就跟大家聊聊有关检测循环怎么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。今天为CodeTop补充的题目是检测循环依赖。循环依赖检测。如,[[...
    99+
    2024-04-02
  • redis如何防止死锁
    redis防止死锁的方法:锁信息设置一定是会过期超时的,不允许一个线程长期占有一个锁。同一时刻只能有一个线程获取到锁。代码示例:long expires = System.currentTimeMillis() + expireTime;S...
    99+
    2024-04-02
  • JavaScript中怎么利用setTimeout防止循环超时
    今天就跟大家聊聊有关JavaScript中怎么利用setTimeout防止循环超时,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JS是单线程的,一个...
    99+
    2024-04-02
  • php foreach如何停止循环
    本篇内容主要讲解“php foreach如何停止循环”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php foreach如何停止循环”吧!php foreach停止循环的方法:1、通过conti...
    99+
    2023-06-20
  • php如何循环数组检测是否包含某值
    本篇内容主要讲解“php如何循环数组检测是否包含某值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何循环数组检测是否包含某值”吧!检测方法:1、用foreach语句循环遍历数组,语法“f...
    99+
    2023-06-30
  • C++ 多线程编程中死锁预防和检测机制
    多线程死锁预防机制包括:1. 锁顺序;2. 测试并设置。检测机制包括:1. 超时;2. 死锁检测器。文章举例共享银行账户,通过锁顺序避免死锁,为转账函数先请求转出账户再请求转入账户的锁。...
    99+
    2024-05-14
    多线程 死锁 c++
  • vue的beforeEach死循环如何解决
    这篇文章主要介绍“vue的beforeEach死循环如何解决”,在日常操作中,相信很多人在vue的beforeEach死循环如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue的beforeEach死...
    99+
    2023-07-04
  • win11蓝屏死循环如何解决
    遇到Windows 11的蓝屏死循环问题,可以尝试以下解决方法:1. 重启计算机:长按电源按钮强制关机,待计算机完全关闭后再重新启动...
    99+
    2023-08-22
    win11
  • 如何通过禁止死锁检测来提升高并发MySQL性能
    如何通过禁止死锁检测来提升高并发MySQL性能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 在一个高并发的MySQL服务器...
    99+
    2024-04-02
  • javascript如何跳出循环
    这篇文章主要介绍“javascript如何跳出循环”,在日常操作中,相信很多人在javascript如何跳出循环问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascri...
    99+
    2024-04-02
  • JavaScript如何实现循环
    这篇文章主要为大家展示了“JavaScript如何实现循环”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何实现循环”这篇文章吧。循环1.f...
    99+
    2024-04-02
  • Javascript如何处理循环
    今天小编给大家分享一下Javascript如何处理循环的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。案例:compute.e...
    99+
    2023-06-29
  • 数据库死锁:预防、检测和修复的终极指南
    使用死锁检测和超时机制:数据库管理系统(DBMS)可以配置为检测死锁并自动回滚事务。设置适当的超时时间,以防止死锁长时间存在。 避免嵌套事务:嵌套事务会导致潜在的死锁场景。尽量使用单个事务来执行操作。 保持事务简短:较短的事务不太可能导...
    99+
    2024-03-10
    预防死锁
  • JavaScript如何通过for-in循环检查对象的属性
    这篇文章主要介绍了JavaScript如何通过for-in循环检查对象的属性,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。通过for-in循...
    99+
    2024-04-02
  • PHP和Go如何进行环路链表检测
    本篇内容介绍了“PHP和Go如何进行环路链表检测”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!给定一个链表,如果它是有环链表,实现一个算法返...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作