“JavaScript: void(0)的替代方案有哪些?”

 

学习目标:

  1. 理解javascript:void(0)的工作原理,以及它在前端开发中的作用和用途。
  2. 掌握javascript:void(0)的正确用法,包括在HTML中使用和在事件处理程序中使用。
  3. 能够识别javascript:void(0)可能引起的常见问题,并学会相应的解决方案。
  4. 了解javascript:void(0)的替代方案的优势和适用场景,并能够根据需求选择合适的替代方案。
  5. 能够编写代码,使用替代方案替代javascript:void(0),并验证代码的正确性和性能。

学习内容:

  1. 了解javascript:void(0)的含义:javascript:void(0)是一种特殊的JavaScript语法,用于在点击链接或按钮时执行JavaScript代码而不导致页面跳转。
  2. 探索javascript:void(0)的用法:了解如何在HTML中使用javascript:void(0),例如在<a>标签的href属性中使用,或在JavaScript事件处理程序中使用。
  3. 理解javascript:void(0)的常见使用场景:例如在单页应用程序中,通过javascript:void(0)实现按钮点击后的动作,如弹出模态框或执行AJAX请求。
  4. 学习javascript:void(0)的常见问题及解决方案:例如javascript:void(0)可能导致"Uncaught TypeError: Cannot read property 'xxx' of null"错误,学习如何正确处理此类问题。
  5. 探索javascript:void(0)的替代方案:了解更好的替代方案,如使用事件监听器代替javascript:void(0),或使用无操作的JavaScript语句(例如"void(0)")进行页面跳转的阻止。

学习时间:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

  1. 了解"javascript:void(0)"的基本概念和语法:

    • 学习JavaScript的基本语法和特性,了解如何使用void操作符来阻止页面跳转。

使用ES6最新的语法来替代"javascript:void(0)"的方式,可以使用箭头函数和事件监听器来处理点击事件,并使用event.preventDefault()方法来阻止默认操作。

document.querySelector('a').addEventListener('click', (event) => {event.preventDefault(); // 阻止默认操作// 执行其他操作
});

使用箭头函数可以简化代码,同时保证函数内部的this指向正确。箭头函数的语法是使用箭头(=>)来定义函数,省略了function关键字。

另外,如果需要在点击事件中执行更复杂的操作,可以将操作封装在一个函数中,然后在事件监听器中调用该函数。

const handleClick = (event) => {event.preventDefault(); // 阻止默认操作// 执行其他操作
};document.querySelector('a').addEventListener('click', handleClick);

这样可以更好地组织代码,并且使代码更具可读性和可维护性。

需要注意的是,使用ES6语法需要在支持ES6的环境中运行,或者通过Babel等工具进行转译以支持旧版本的浏览器。

    • 理解"javascript:void(0)"中的括号和参数的用法,以及为什么使用0作为参数。

在"javascript:void(0)"中,括号和参数的使用是为了实现一个合法的JavaScript表达式。void操作符用于计算一个表达式的值,并返回undefined。在void的括号中,可以传入任何表达式作为参数,但这个参数的值会被忽略。

为什么要使用0作为参数呢?这是因为在JavaScript中,0是一个代表"假"的值,而不传入任何参数会引起语法错误。因此,使用0作为参数可以确保表达式的合法性。

实际上,void操作符的主要目的是为了消除对表达式求值的副作用。在"javascript:void(0)"中,表达式求值的结果被忽略,页面不会发生任何跳转。

需要注意的是,"javascript:void(0)"已经过时,不再推荐使用。在现代的JavaScript中,可以使用更优雅和可读性更好的方式来处理事件阻止和操作执行,如使用事件监听器和event.preventDefault()方法。

  1. 探索"javascript:void(0)"在HTML中的使用:

    • 学习如何在<a>标签的href属性中使用"javascript:void(0)",以及它与其他跳转方式(如"#","javascript:")的区别。

在HTML中,我们可以在&lt;a>标签的href属性中使用"javascript:void(0)"来实现点击链接时不进行页面跳转的效果。具体使用方式如下:

<a href="javascript:void(0)">点击我不会跳转</a>

与其他跳转方式相比,"javascript:void(0)"的使用有以下几个区别:

  1. "#"跳转:当我们在&lt;a>标签的href属性中使用"#"时,点击链接会导致页面滚动到文档中ID为"#"的元素。而"javascript:void(0)"则不会产生任何滚动效果。
<a href="#">点击我会滚动</a>

  1. "javascript:"跳转:当我们在&lt;a>标签的href属性中使用"javascript:"时,可以执行JavaScript代码。而"javascript:void(0)"则没有具体的代码执行,只是简单地返回undefined。
<a href="javascript:alert('Hello')">点击我会弹出提示框</a>

  1. 阻止默认行为:在使用"javascript:void(0)"作为&lt;a>标签的href属性时,需要注意它只是阻止了默认的页面跳转行为。如果在JavaScript代码中没有明确禁止其他操作(如表单提交),仍然可能发生其他行为。因此,对于更复杂的操作,建议使用事件监听器和阻止事件的默认行为。

总结来说,"javascript:void(0)"主要用于简单的无跳转链接,而对于更复杂的操作,应该采用更合适的方式来处理。

    • 研究如何通过点击链接或按钮执行JavaScript代码,而不导致页面刷新或跳转。

要通过点击链接或按钮执行JavaScript代码而不导致页面刷新或跳转,可以使用以下方法:

  1. 使用&lt;a>标签的href属性和事件监听器:通过给&lt;a>标签添加href="javascript:void(0)"可以阻止页面跳转。然后,使用JavaScript事件监听器(如onclick)来执行所需的代码。
<a href="javascript:void(0)" onclick="myFunction()">点击我执行代码</a><script>function myFunction() {// 执行你的代码console.log('代码执行成功!');}
</script>

  1. 使用按钮元素和事件监听器:使用&lt;button>标签或其他按钮元素,然后使用事件监听器来执行JavaScript代码。
<button onclick="myFunction()">点击我执行代码</button><script>function myFunction() {// 执行你的代码console.log('代码执行成功!');}
</script>

  1. 使用JavaScript事件监听器:如果不需要使用链接或按钮元素,可以直接使用JavaScript事件监听器(如addEventListener)来捕捉特定事件(如点击事件)并执行代码。
<script>document.getElementById("myElement").addEventListener("click", myFunction);function myFunction() {// 执行你的代码console.log('代码执行成功!');}
</script>

在这些示例中,myFunction()是要执行的JavaScript代码。你可以根据自己的需求修改代码,并根据实际情况选择合适的方式来执行。注意,如果你需要对链接或按钮元素进行其他操作(如样式更改),需要使用JavaScript代码来阻止事件的默认行为。

总结来说,你可以通过链接、按钮或JavaScript事件监听器来执行JavaScript代码,并阻止页面刷新或跳转。选择合适的方法取决于你的需求和代码结构。

  1. 理解"javascript:void(0)"的常见使用场景:

    • 了解在单页应用程序中,如何使用"javascript:void(0)"来处理按钮点击事件,执行特定的操作或功能。

在单页应用程序中,可以使用"javascript:void(0)"来处理按钮点击事件并执行特定的操作或功能。

一种常见的使用场景是在导航菜单或选项卡中,通过点击不同的按钮来切换内容或显示不同的页面。使用"javascript:void(0)"可以阻止页面跳转,同时通过JavaScript代码来执行相应的操作。

例如,假设有一个导航菜单,点击不同的选项按钮会在页面上显示对应的内容。可以使用以下方法来实现:

<ul><li><a href="javascript:void(0)" onclick="displayContent('home')">首页</a></li><li><a href="javascript:void(0)" onclick="displayContent('about')">关于我们</a></li><li><a href="javascript:void(0)" onclick="displayContent('contact')">联系我们</a></li>
</ul><div id="content"></div><script>function displayContent(page) {// 根据传入的页面参数执行不同的操作if (page === 'home') {document.getElementById('content').innerHTML = '这是首页的内容';} else if (page === 'about') {document.getElementById('content').innerHTML = '这是关于我们的内容';} else if (page === 'contact') {document.getElementById('content').innerHTML = '这是联系我们的内容';}}
</script>

在上面的示例中,点击菜单中的不同选项按钮会执行displayContent()函数,并根据传入的参数来显示不同的内容。由于链接的href属性设置为"javascript:void(0)",所以不会进行页面跳转。通过JavaScript代码来修改contentdiv元素的内容,实现了在同一页上切换不同内容的效果。

这种方法可以在单页应用程序中处理各种按钮点击事件,执行特定的操作或切换不同的页面内容。这样可以避免页面的刷新或跳转,提供更流畅的用户体验。

    • 探索"javascript:void(0)"的用途,例如在表单提交时进行验证,或在模态框弹窗时进行处理。

"javascript:void(0)"是一个特殊的URL,它通常用作一个占位符,表示在点击某个链接或按钮时不执行任何操作。它可以用于多种情况,包括在表单提交时进行验证或在模态框弹窗时进行处理。

在表单提交时进行验证: 在表单的提交按钮中使用"javascript:void(0)"作为链接,可以通过JavaScript代码来验证表单的输入是否符合要求。在验证成功后,可以继续执行其他操作或将表单数据提交到服务器。

例如:

<form onsubmit="return validateForm()"><!-- 表单内容 --><input type="submit" value="提交" onclick="javascript:void(0)">
</form><script>
function validateForm() {// 表单验证逻辑if (/* 验证通过 */) {// 执行其他操作return true; // 继续提交表单} else {return false; // 阻止提交表单}
}
</script>

在模态框弹窗时进行处理: 在模态框弹窗中的按钮中使用"javascript:void(0)"作为链接,可以在点击按钮时执行特定的处理逻辑,例如关闭模态框或发送Ajax请求。

例如:

<div id="myModal" class="modal"><!-- 模态框内容 --><button onclick="closeModal()">关闭</button><button onclick="handleAction()">执行操作</button>
</div><script>
function closeModal() {// 关闭模态框的逻辑// ...
}function handleAction() {// 处理操作的逻辑// ...
}
</script>

总之,"javascript:void(0)"可以作为一个占位符,用于在点击链接或按钮时执行特定的JavaScript代码,以满足不同的需求,如表单验证或模态框处理。

  1. 学习"javascript:void(0)"的常见问题及解决方案:

    • 研究可能出现的错误信息,如"Uncaught TypeError: Cannot read property 'xxx' of null",了解这些错误是如何发生的,及如何避免或解决问题。

当使用"javascript:void(0)"时,可能会出现一些常见的错误,如"Uncaught TypeError: Cannot read property 'xxx' of null"。这种错误通常表示在执行JavaScript代码时,尝试读取一个为null或undefined的对象的属性。以下是可能出现此错误的一些情况,以及相应的解决方案:

  1. 使用"javascript:void(0)"时,未正确绑定事件处理程序: 错误示例:

    <a href="javascript:void(0)" onclick="myFunction()">点击我</a><script>
    function myFunction() {var element = document.getElementById("myElement");if (element.value) {// 执行操作}
    }
    </script>
    

    解决方案: 确保存在一个具有正确ID的元素,或者在JavaScript代码中进行null检查,以避免引发错误。

    <a href="javascript:void(0)" onclick="myFunction()">点击我</a><script>
    function myFunction() {var element = document.getElementById("myElement");if (element && element.value) {// 执行操作}
    }
    </script>
    

  2. 在使用"javascript:void(0)"时,未正确处理函数参数: 错误示例:

    <a href="javascript:void(0)" onclick="myFunction('param')">点击我</a><script>
    function myFunction(param) {if (param.length > 0) {// 执行操作}
    }
    </script>
    

    解决方案: 确保在使用"javascript:void(0)"调用函数时,传递了正确的参数,或者在JavaScript代码中进行参数的有效性检查。

    <a href="javascript:void(0)" onclick="myFunction('param')">点击我</a><script>
    function myFunction(param) {if (param && param.length > 0) {// 执行操作}
    }
    </script>
    

  3. 使用"javascript:void(0)"时,在代码块中使用了null引用: 错误示例:

    <script>
    var element = document.getElementById("myElement");
    if (element.value) {// 执行操作
    }
    </script>
    

    解决方案: 确保在使用"javascript:void(0)"代码块中的任何操作之前,已经正确获取了要操作的元素。

    <script>
    var element = document.getElementById("myElement");
    if (element && element.value) {// 执行操作
    }
    </script>
    

确保在使用"javascript:void(0)"时,始终保持良好的代码编写习惯,进行适当的错误处理和参数检查,以避免出现错误,并提高代码的可靠性和健壮性。

    • 学习如何正确处理"javascript:void(0)"的返回值,以避免出现意外的行为或错误。

"javascript:void(0)"主要用于在不导致页面刷新或跳转的情况下执行JavaScript代码。然而,它的返回值是一个忽略的undefined值,如果不正确处理,可能会导致意外的行为或错误。以下是一些正确处理"javascript:void(0)"返回值的方法:

  1. 防止默认行为和事件处理: 当使用"javascript:void(0)"来绑定事件处理程序时,确保在事件处理程序的末尾使用return false语句,以阻止浏览器执行默认的行为。

    <a href="javascript:void(0)" onclick="myFunction(); return false;">点击我</a>
    

  2. 使用事件对象event.preventDefault()方法: 如果使用addEventListener()或attachEvent()来绑定事件处理程序,则可以使用event.preventDefault()方法来阻止默认行为。

    <a id="myLink" href="#">点击我</a><script>
    document.getElementById("myLink").addEventListener("click", function(event) {// 执行操作event.preventDefault();
    });
    </script>
    

  3. 使用event.stopPropagation()方法避免事件冒泡: 当在使用"javascript:void(0)"的链接或按钮上绑定多个事件处理程序时,可以使用event.stopPropagation()方法来阻止事件冒泡到父元素。

    <div onclick="handleParentClick()"><a href="javascript:void(0)" onclick="handleChildClick(); event.stopPropagation();">点击我</a>
    </div>
    

  4. 使用return语句返回 false 值: 如果在JavaScript代码中使用"javascript:void(0)"执行某个操作,并且希望阻止其他代码继续执行,则可以在代码末尾使用return语句返回false值。

    <a href="javascript:void(0)" onclick="return myFunction()">点击我</a><script>
    function myFunction() {if (condition) {return false;}// 执行操作
    }
    </script>
    

正确处理"javascript:void(0)"的返回值非常重要,以确保代码的可靠性和一致性,并避免出现意外的行为或错误。

  1. 探索"javascript:void(0)"的替代方案:

    • 了解更好的替代方案,如使用事件监听器(addEventListener)来处理点击事件,而不需要使用"javascript:void(0)"。

当处理点击事件时,确实有更好的替代方案可以替代使用"javascript:void(0)"。

一种替代方案是使用事件监听器(addEventListener)来处理点击事件。通过这种方式,我们可以将事件处理程序与元素分离,并允许将多个事件处理程序绑定到同一个元素上。

以下是使用事件监听器来替代"javascript:void(0)"的示例:

<a id="myLink" href="#">点击我</a><script>
document.getElementById("myLink").addEventListener("click", function(event) {event.preventDefault(); // 阻止默认行为// 执行操作
});
</script>

在这个示例中,我们使用addEventListener来绑定一个点击事件处理程序,当链接被点击时,事件处理程序将被调用。在事件处理程序中,我们使用event.preventDefault()来阻止链接的默认行为(如跳转到链接的href属性指定的URL)。然后,我们可以在事件处理程序中执行我们想要的任何操作。

使用事件监听器的好处是可以更好地组织和管理代码,并且可以在不修改HTML代码的情况下添加或移除事件处理程序。此外,避免了使用"javascript:void(0)"可能带来的潜在问题和错误。

总结起来,使用事件监听器(addEventListener)是替代"javascript:void(0)"的更好方案,它提供了更灵活和可维护的方式来处理点击事件。

    • 研究其他阻止页面跳转的方法,如使用空操作(void(0))或返回false来替代"javascript:void(0)"。

除了使用"javascript:void(0)"外,还有其他方法可以阻止页面跳转,如使用空操作(void(0))或返回false。以下是对这些方法的说明:

  1. 空操作(void(0)): 当链接的href属性设置为"javascript:void(0)"时,实际上是调用了一个空操作。void运算符用于返回undefined,因此调用void(0)不会执行任何操作,并且不会导致页面跳转。

    示例代码:

    <a href="javascript:void(0)">点击我</a>
    

    尽管这种方法可以阻止页面跳转,但它不被推荐使用。这是因为void(0)并不是一种良好的代码实践,它可能会导致代码阅读困难,并且不容易理解其意图。

  2. 返回false: 另一种常见的方法是在点击事件处理程序中返回false。在这种情况下,我们可以直接在事件处理程序中返回false,而不必设置链接的href属性。

    示例代码:

    <a id="myLink" href="#">点击我</a><script>
    document.getElementById("myLink").onclick = function() {// 执行操作return false; // 阻止页面跳转
    };
    </script>
    

    请注意,当返回false时,它既可以阻止默认行为,也可以阻止事件冒泡。因此,如果您只想阻止默认行为而保留事件冒泡,可以在事件处理程序的最后返回false之前使用event.preventDefault()。

需要注意的是,返回false和使用"javascript:void(0)"都是阻止页面跳转的方法,但它们都不被推荐使用。推荐的方法是使用事件监听器(addEventListener)和event.preventDefault()来处理点击事件,以更好地组织和管理代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

numpy的数组深度叠加dstack详解

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 numpy的dstack函数用于沿着第三个维度&#xff08;深度&#xff09;将数组堆叠起来。它将多个数组按照深度方向进行堆叠&#xff0c;生成一个新的数组。具体来说&#xff0c;dstack函数会将输入的…

docker部署开源多功能监控系统

HertzBeat 是一个无需 Agent、高性能、易扩展、功能强大的开源实时监控告警系统&#xff0c;无需 Agent、高性能、易扩展、功能强大&#xff0c;由 Dromara 团队开发并开源&#xff0c;能够帮我们轻松监控应用、服务、基础设施等各种资源的运行状况 部署 docker run -d -p 11…

腾讯云服务器按月收费价格表,优惠价格5元一个月起

2024腾讯云服务器多少钱一个月&#xff1f;5元1个月起&#xff0c;腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月&#xff0c;8核32G22M配置115元一个月、345元3个月&#xff0c;腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

01 JDBC介绍

文章目录 JDBC本质版本使用核心APIDriverDriverManager驱动注册连接对象获取 Connection获取执行对象事务管理 Statement概述 ResultSet概述 JDBC本质 官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口各个数据库厂商去实现这套接…

【Week Y2】使用自己的数据集训练YOLO-v5s

Y2-使用自己的数据集训练YOLO-v5s 零、遇到的问题汇总&#xff08;1&#xff09;遇到git的import error&#xff08;2&#xff09;Error&#xff1a;Dataset not found&#xff08;3&#xff09;Error&#xff1a;删除中文后&#xff0c;训练图片路径不存在 一、.xml文件里保存…

框架篇常见面试题

1、Spring框架的单例bean是线程安全的吗&#xff1f; 2、什么是AOP&#xff1f; 3、Spring的事务是如何实现的&#xff1f; 4、Spring事务失效的场景 5、SpringBean的声明周期 6、Spring的循环依赖 7、SpringMVC的执行流程 8、SpringBoot自动配置原理 9、Spring常见注解

Java中的实用类讲解(中篇)

如果想观看更多Java内容 可上我的个人主页关注我&#xff0c;地址子逸爱编程-CSDN博客https://blog.csdn.net/a15766649633?spm1000.2115.3001.5343 使用工具 IntelliJ IDEA Community Edition 2023.1.4 使用语言 Java8 代码能力快速提升小方法&#xff0c;看完代码自己敲…

AV1:帧内预测(一)

​VP9支持10种帧内预测模式&#xff0c;包括8种角度模式和非角度模式DC、TM(True Motion)模式&#xff0c;AV1在其基础上进一步扩展&#xff0c;AV1帧内预测角度模式更细化&#xff0c;同时新增了部分非角度模式。 扩展的角度模式 AV1在VP9角度模式的基础上进一步扩展&#xf…

CSharp的lambda表达式匿名类扩展方法

c#的lamba表达式 之前已经写过一些关于委托还有事件的文章&#xff0c;今天就来介绍一下lambda表达式。 首先定义需要的函数以及委托 { public delegate void DoNothingDelegate(); public delegate void StudyDelegate(int id, string name);private void DoNothing() {Cons…

蓝桥杯--完全二叉树

import java.util.Scanner;import static java.lang.Math.log;public class top9 {//求树的每一层的和public static void main(String [] args){Scanner scannernew Scanner(System.in);int nscanner.nextInt();int [] arrnew int[n];for(int i0;i<n;i){arr[i]scanner.next…

Android Studio实现内容丰富的安卓志愿者平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号122 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查看岗位 4.浏览新闻&#xff0c; 5.个人中心…

1、Java虚拟机学习-类的生命周期-加载阶段-以及怎样查看方法区中的对象和堆中对象的关联以及静态变量存在什么地方

类的生命周期 其中连接又可以分为3个小阶段 一、加载阶段 1、加载阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。 渠道: 2、类加载器在加载完类之后&#xff0c;Java虚拟机会将字节码中的信息保存在内存的方法区中。 方法区是虚拟…

使用Vscode连接云进行前端开发

使用Vscode连接云进行前端开发 1、ssh连接腾讯云 本人使用的是腾讯云。 然后vscode,用最新版&#xff0c;插件选择remote ssh&#xff0c;或者remote xxx下载过来。 然后点击远程资源管理器&#xff0c;选择SSH通道 然后输入命令如下。 ssh rootip然后输入密码 腾讯云应该…

Source Insight使用-添加新的文件类型

目录 遇到的问题解决方法结果 遇到的问题 在Source Insight中我们通常查看.c和.h文件&#xff0c;当使用其查看.java 或者.hal等类型文件时&#xff0c;发现找不到 解决方法 以添加.hal文件为例: 选择Options 下面的File Type Options… 选项。 点击左侧的 “C/C Source F…

哈尔滨工业大学 《材料物理》 笔记-3

原内容请参考哈尔滨工业大学何飞教授&#xff1a;https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》&#xff08;哈尔滨工业大学出版社&#xff09; 量…

YOLOv9改进策略:卷积魔改 | 分布移位卷积(DSConv),提高卷积层的内存效率和速度

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; YOLOv9如何魔改卷积进一步提升检测精度&#xff1f;提出了一种卷积的变体&#xff0c;称为DSConv&#xff08;分布偏移卷积&#xff09;&#xff0c;其可以容易地替换进标准神经网络体系结构并且实现较低的存…

针对BSV区块链新推出的网络访问规则NAR和警报系统AS的解释与问答

​​发表时间&#xff1a;2024年2月22日 BSV区块链社区团队最近开设了一个Twitter&#xff08;X&#xff09;话题空间&#xff0c;讨论BSV区块链协会最新推出的网络访问规则和警报系统的相关问题。 本次讨论由BSV区块链社区负责人Brett Banfe主持&#xff0c;以便社区成员更好…

vivado 物理优化约束、交互式物理优化

物理优化约束 Vivado Design Suite在物理优化过程中尊重DONT_TOUCH特性。它不在具有这些属性的网络或小区上执行物理优化。要加快网络选择过程中&#xff0c;具有DONT_TOUCH属性的网络经过预过滤&#xff0c;不被考虑用于物理优化。此外&#xff0c;还遵守Pblock分配&#xff…

母亲的奶牛(bfs)

农夫约翰有三个容量分别为 A , B , C A,B,C A,B,C 升的挤奶桶。 最开始桶 A A A 和桶 B B B 都是空的&#xff0c;而桶 C C C 里装满了牛奶。 有时&#xff0c;约翰会将牛奶从一个桶倒到另一个桶中&#xff0c;直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。 这一过…

Linux常用命令之搜索查找类

1.1find查找文件或目录 1&#xff09;基本语法 find [搜索范围] [ 选项] find -name&#xff1a;按照名字查找 find -user&#xff1a;按用户相关查找 find -size&#xff1a;按照文件大小查找 1.2locate快速定位文件路径 经验技巧&#xff1a;由于locate指令基于数据库进行…