JavaScript实战训练小项目 WebAPI

news2024/11/26 14:51:44

JavaScript实战训练小项目

在这里插入图片描述

文章目录

  • JavaScript实战训练小项目 & WebAPI
    • 1. JS操作DOM树
      • 1.1 获得HTML控件/元素标签
      • 1.2 操纵控件
        • 1.2.1 获取属性值
        • 1.2.1 修改属性值
      • 1.3 实现一个猜数字的功能
    • 2. JQuery
    • 3. 简单计算器
    • 4. 聚合搜索
    • 5. 表白墙

JavaScript实战训练小项目 & WebAPI

1. JS操作DOM树

在上一篇文章中,其实我们并没有学JS和HTML的互动,而是各干各的

  • 现在,我们就要用JS让HTML更有活力~

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(HTML和XML文档是通过说明部分定义的)。文档可以进一步被处理,处理的结果可以加入到当前的页面。DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。另外一种简单的API是基于事件的SAX,它可以用于处理很大的XML文档,由于大,所以不适合全部放在存储器中处理。

你可以简单的理解为,jS操作DOM树就是在获得HTML的标签元素并有一些动作

  • 而这个过程,就需要用到一些WebAPI

1.1 获得HTML控件/元素标签

  • 根据id来获取对象
    • document就是本文件对应的对象!
    • 可以通过name…等等去获取
    • 但是最常用的是id,因为id是有唯一性的
document.getElementById("标签的id名");

1.2 操纵控件

1.2.1 获取属性值

  • 获取到的对象,就有对应的属性
document.getElementById("id").value;

1.2.1 修改属性值

例子:

  • 我以替换背景图片为例

不加js代码的html代码:

在这里插入图片描述

效果:

在这里插入图片描述

加了之后的代码:

在这里插入图片描述

效果:

在这里插入图片描述

解释:

  • 点击按钮,调用js函数触发背景替换

在这里插入图片描述

1.3 实现一个猜数字的功能

js中任何产生随机数呢?

  • 可以去查一查mdn文档

在这里插入图片描述

在这里插入图片描述

生成一个1到10的随机数

  • 一共十个值,乘以十取整
  • 初始是1,取整后加一

在这里插入图片描述

注意:js中有一些是默认的内置函数,比如select…,所以如果发现运行不了,可能是因为你的函数与内置函数重名了~

<div>
    <h3>猜数字游戏</h3>
    玩家请输入一个 1 - 10 的数字: 
    <input type="text" id="input_number"><br>
    <input type="button" value="查看结果" onclick="select1()">
    <div id="result">

    </div>

    <script>
        function select1() {
            //产生随机数
            var number = parseInt(Math.random() * 10) + 1;
            var inputNumber = document.getElementById("input_number").value;
            var msg;
            if(number == parseInt(inputNumber)) {
                msg = "<h4>恭喜你,猜对了</h4>";
            }else {
                msg = "<h4>猜错了,正确的数字是" + number + "</h4>";
            }
            document.getElementById("result").innerHTML = msg;
        }
    </script>
</div>

获取到div对象,可以向里面添加html代码或者文本

  1. innerHTML,添加html代码块,并被浏览器编译
  2. innerText,添加文本,不被浏览器编译
    • 调用前会清空之前此对象的inner影响的效果

innerHTML效果:

在这里插入图片描述

innerText效果:

document.getElementById("result").innerText = msg;

在这里插入图片描述

2. JQuery

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(框架)于2006年1月由[John Resig](https://baike.baidu.com/item/John Resig/6336344?fromModule=lemma_inlink)发布。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的CSS选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

简而言之,它就是一个工具js,是一个很好的外部资源,它提供了很多简洁高效的API

  • 怎么引入呢?
  1. 下载jquery的js文件
    • 马HTML/jquery.min.js · 游离态/马拉圈2023年5月 - 码云 - 开源中国 (gitee.com)
  2. 使用jquery的网络地址访问
    • https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js

然后用script标签引入外部资源就行了

  • 写在head里,保证后续的js代码都能够使用jquery的API

上面的猜数字游戏是原生的js代码,现在是使用jquery的代码:

  • 这些API需要通过jQuery这个对象去调用,有一个别名“$”,但是不建议使用,因为其他的一些js框架,也会使用到这个别名,所以会冲突~
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>WebAPI Test</title>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    </head>
    <body id="body">
        <div>
            <h3>猜数字游戏</h3>
            玩家请输入一个 1 - 10 的数字: 
            <input type="text" id="input_number"><br>
            <input type="button" value="查看结果" onclick="selectByJQuery()">
            <div id="result">

            </div>

            <script>
                function selectByJQuery() {
                    var number = parseInt(Math.random() * 10) + 1;
                    var inputNUmber = jQuery("#input_number").val();
                    var msg;
                    if(number == parseInt(inputNumber)) {
                        msg = "<h4>恭喜你,猜对了</h4>";
                    }else {
                        msg = "<h4>猜错了,正确的数字是" + number + "</h4>";
                    }
                    jQuery("#result").html(msg);
                }
            </script>
        </div>


    </body>
</html>

效果更刚才一致,不做展示

  • 你可能会觉得,这也简约不到哪里去啊
  • 这是因为我们的代码很简单,代码一多或者一些场景就会很简约~
    • 前提是你熟悉那些API,不过,不会的查一下就行了呗~

前面的更换背景的代码可更改为:

  • jQuery获取标签对象可以参考CSS的标签选择器~
function change() {
    jQuery("body").css("background-image",                      "url(https://img0.baidu.com/it/u=3007501660,4148393477&fm=253&fmt=auto&app=138&f=JPEG?w=563&h=500)");
}

jQuery的赋值不是等号赋值,而是传值给对应的函数

效果一致

在这里插入图片描述

val方法既可以获取值,也可以修改值

  • 不传参,返回对应值
  • 传参,value修改成对应的值,返回修改前的值
    • 其他标签属性的方法类似
function selectByJQuery() {
    var number = parseInt(Math.random() * 10) + 1;
    jQuery("#input_number").val(number);
    var inputNumber = jQuery("#input_number").val();
    var msg;
    if(number == parseInt(inputNumber)) {
        msg = "<h4>恭喜你,猜对了</h4>";
    }else {
        msg = "<h4>猜错了,正确的数字是" + number + "</h4>";
    }
    jQuery("#result").html(msg);
}
  • 更改成这样的话,效果如下所示:

在这里插入图片描述

接下来,我们将用js和jquery去实现几个小项目:

  1. 计算器
  2. 聚合搜索
  3. 表白墙

3. 简单计算器

  • head引入jquery和css文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简单计算器</title>
    <link rel="stylesheet" href="cal.css">
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
</head>
<body>

</body>
</html>
  • body中的一些页面元素:
<div class="calculator">
    <div class="cal">
        <form action="#">
            <h2>简单计算器</h2>
            <div class="row">
                数字一:<input type="text" id="c1">
            </div>                
            <div class="row">
                数字二:<input type="text" id="c2">
            </div>
            <div class="option">
                <input type="button" value="相加" onclick="add()" id="a">
                <!-- id不能与函数重复,否则会误判 -->
                <input type="button" value="相减" onclick="sub()" id="s">
                <input type="button" value="相乘" onclick="mul()" id="m">
                <input type="button" value="相除" onclick="div()" id="d">
            </div>
            <div class="clear">
                <div class="reset">
                    <input type="reset" value="清空" id="up" onclick="update()">
                </div>
            </div>
        </form>
    </div>
</div>
  • js代码:
<script>
    function add() {
        var numb1 = jQuery("#c1").val();
        var numb2 = jQuery("#c2").val();
        var sum = parseInt(numb1) + parseInt(numb2);
        jQuery("#a").val(sum);
    }
    function sub() {
        var numb1 = jQuery("#c1").val();
        var numb2 = jQuery("#c2").val();
        var sum = parseInt(numb1) - parseInt(numb2);
        jQuery("#s").val(sum);
    }
    function mul() {
        var numb1 = jQuery("#c1").val();
        var numb2 = jQuery("#c2").val();
        var sum = parseInt(numb1) * parseInt(numb2);
        jQuery("#m").val(sum);
    }
    function div() {
        var numb1 = jQuery("#c1").val();
        var numb2 = jQuery("#c2").val();
        var sum = parseFloat(numb1) / parseInt(numb2);
        jQuery("#d").val(sum);
    }
    function update() {
        jQuery("#a").val("相加");
        jQuery("#s").val("相减");
        jQuery("#m").val("相乘");
        jQuery("#d").val("相除");
    }

</script>
  • css文件:
    • 有时间可以研究一下,这里只是为了美观~
html {
    width: 100%;
    height: 100%;
}
body {
    width: 100%;
    height: 100%;
    background-image: url("海.jpg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}
.calculator {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.cal {
    width: 600px;
    height: 400px;
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 20px;
}
.cal h2 {
    font-size: 24px;
    text-align: center;
    margin-top: 60px;
    margin-bottom: 40px;
}

.cal .row {
    height: 50px;
    width: 100%;
    display: flex;
    justify-content: space-around;/*设置flex的原因就是要用这个*/
    align-items: center;
    font-size: 25px;
    font-weight: 900;
    margin: 10px;
}
#c1 {
    width: 400px;
    height: 45px;
    font-size: 23px;
    text-indent: 10px;
    border-radius: 10px;
}
#c2 {
    width: 400px;
    height: 45px;
    font-size: 23px;
    text-indent: 10px;
    border-radius: 10px;
}

.option input {
    display: block;
    font-weight: 900;
    font-size: 20px;
    width: 100px;
    height: 70px;
    color: rgba(255, 255, 255, 0.618);
    border-radius: 20px;
    background-color: rgba(251,114,153, 0.7);
}
.option {
    margin-top: 20px;
    display: flex;
    justify-content: space-around;
}
.clear {
    display: flex;
    justify-content: center;
    align-items: center;
}
.reset #up {
    width: 200px;
    height: 30px;
    background-color:rgba(0, 0, 0, 0.4);
    color: white;
    font-weight: 900;
    line-height: 30px;
    text-align: center;
    border-radius: 2010px;
    border:none;
    margin-top: 20px;
    transition: all 0.618s;
}
#up:hover{
    background-color: rgba(251,114,153, 0.7);
}

效果:

在这里插入图片描述

4. 聚合搜索

  • 聚合搜索就是一个页面,上面有一栏按钮,按一下就跳转到对应的网址,栏下的页面转换为对应的网址,但是选择栏还在
  • 主要是为了提高体验感~

html:

  • 嵌入页面用iframe标签
  • 我们只需要点击按钮的时候,改变iframe的src属性即可
    • 用到attr方法,左边为属性名,右边为替换后的值
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="AS.css" />
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <title>聚合搜索</title>
  </head>
  <body>
    <!-- 这里是我比较常用的网站,可以实际更换 -->
    <!-- 值得一提的是,有些网址不支持“嵌套” -->
    <div id="option">
      <input type="button" value="b站" onclick="toBilibili()" />
      <input type="button" value="CSDN" onclick="toCSDN()" />
      <input type="button" value="码云" onclick="toGit()" />
    </div>

    <hr />
    <!-- 嵌入网页的框架iframe标签 -->
    <!-- 给一个初始页面 -->
    <div class="ifm">
        <iframe src="#" id="frame"></iframe>
    </div>

    <script>
      function toBilibili() {
        jQuery("#frame").attr("src", "https://www.bilibili.com/");
      }
      function toCSDN() {
        jQuery("#frame").attr(
          "src",
          "https://blog.csdn.net/?spm=1000.2115.3001.4477"
        );
      }
      function toGit() {
        jQuery("#frame").attr("src", "https://gitee.com/carefree-state");
      }
    </script>
  </body>
</html>

CSS修饰:

  • 感兴趣的可以看看~

html {
    width: 100%;
    height: 100%;
}
body {
    width: 100%;
    height: 100%;
    background-image: url("海.jpg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}
#option {
    width: 100%;
    height: 30px;
    display: flex;
    justify-content: space-around;
}
#option input {
    display: block;
    font-weight: 900;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.618);
    border-radius: 9px;
    background-color: rgba(251,114,153, 0.7);
}
.ifm {
    height: calc(100% - 30px);
    display: flex;
    justify-content: center;
    align-items: center;
}
iframe {
    width: 1200px;
    height: 600px;
}

效果:

  1. 一开始出现了“套娃”现象,其实#号代表就是当前的页面了,所以它将页面套了进去
    • 不会出现无限套娃的现象,内部限制了
  2. 可能会有一些网站拒绝被嵌入的

在这里插入图片描述

5. 表白墙

  • 这是个简陋的表白墙
  • 输入发起者,输入接收者,输入表白话语,然后显示在表白墙上

想法:

  • 左上角是输入框,为”表白“
  • 右边为表白详细,为”墙“

script行为:

  • 获取三个信息
  • 进行非空校验
    • 通过trim去掉空格后,看看是不是空字符串
    • 用alert提醒
    • 用focus聚焦到对应的文本框
  • 发送成功情况数据
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="stylesheet" href="pursue.css">
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
        <title>表白墙</title>
    </head>
    <body>
        <div class="container">
            <div class="container-left">
                <div class="card">
                    <form action="#">
                        <h1>表白</h1>
                        <div class="row">
                            谁:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" id="c1">
                        </div>    
                        <div class="row">
                            想对谁:<input type="text" id="c2">
                        </div>            
                        <div class="row">
                            说:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" id="c3">
                        </div>
                        <div class="print">
                            <div class="s">
                                <input type="button" value="发送" id="go" onclick="send()">
                            </div>
                        </div>
                    </form>
                </div>
            </div>
            <div class="container-right">
                <div class="article" id="a">
                    <h1 style="font-size: 50px;"></h1>
                </div>
            </div>   
        </div>
        <script> 
            function send() {
                var text1 = jQuery("#c1");
                var text2 = jQuery("#c2");
                var text3 = jQuery("#c3");
                if(text1.val().trim() == "") {
                    alert("请输入是谁!");
                    text1.focus();
                    return;
                }
                if(text2.val().trim() == "") {
                    alert("请输入想对谁说!");
                    text2.focus();
                    return;
                }
                if(text3.val().trim() == "") {
                    alert("请输入想说什么!");
                    text3.focus();
                    return;
                }
                var loveWords =  "<br><h2>" + text1.val() + " 想对 " + text2.val() + " 说 " + text3.val() + "!</h2>";
                jQuery("#a").append(loveWords);
                text1.val("");
                text2.val("");
                text3.val("");
            }
        </script>
    </body>
</html>

css修饰:

  • 感兴趣可以看看~
* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}
html {
    height: 100%;
}
body {
    background-image: url(海.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    height: 100%;
}
.container {
    /* 固定宽度 */
    width: 1000px;
    margin: 0 auto;
    height: 100%;

    display: flex;
    justify-content: space-between;
}

/* 增加可读性 */
.container .container-left {
    height: 100%;
    width: 25%;
}

.container .container-right {
    height: 100%;
    width: 74%;
}
.card {
    margin-top: 10px;
    height: 245px;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.8);

    border-radius: 25px;
}
.article {
    margin-top: 10px;
    height: calc(100% - 10px);
    width: 100%;
    background-color: rgba(255, 255, 255, 0.8);

    border-radius: 15px;
    padding: 5px 20px;
    overflow: auto;
    /* 内容溢出,滚动条放入这里 */
}
.article h2 {
    color: rgba(251, 114, 153, 0.8);
}

.card h1 {
    font-size: 50px;
    text-align: center;
    margin-top: 15px;
    margin-bottom: 15px;
}
.row {
    height: 30px;
    width: 100%;
    display: flex;
    justify-content: space-around; /*设置flex的原因就是要用这个*/
    align-items: center;
    font-size: 15px;
    margin: 5px;
    font-weight: 900;
}
#c1 {
    width: 120px;
    height: 19px;
    font-size: 12px;
    text-indent: 4px;
    border-radius: 4px;
    font-weight: 900;
    color: rgba(251, 114, 153, 0.7);
}
#c2 {
    width: 120px;
    height: 19px;
    font-size: 12px;
    text-indent: 4px;
    border-radius: 4px;
    font-weight: 900;
    color: rgba(251, 114, 153, 0.7);
}
#c3 {
    width: 120px;
    height: 19px;
    font-size: 12px;
    text-indent: 4px;
    font-weight: 900;
    border-radius: 4px;
    font-weight: 900;
    color: rgba(251, 114, 153, 0.7);
}
.print {
    display: flex;
    justify-content: center;
    align-items: center;
}
.s #go {
    width: 150px;
    height: 25px;
    background-color: rgba(0, 0, 0, 0.4);
    color: white;
    font-weight: 900;
    line-height: 25px;
    text-align: center;
    border-radius: 10px;
    border: none;
    margin-top: 10px;
    transition: all 0.618s;
}
#go:hover {
    background-color: rgba(251, 114, 153, 0.7);
}

效果:

在这里插入图片描述

非空校验:

在这里插入图片描述


文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

前端知识就讲解这么多了!

  • 我们只是了解而已,没必要去背,不会的忘了的,去查文档就行了!
  • 边查边用!

后续的后端知识非常重要!敬请期待我的讲解!

color: rgba(251, 114, 153, 0.7);

}
.print {
display: flex;
justify-content: center;
align-items: center;
}
.s #go {
width: 150px;
height: 25px;
background-color: rgba(0, 0, 0, 0.4);
color: white;
font-weight: 900;
line-height: 25px;
text-align: center;
border-radius: 10px;
border: none;
margin-top: 10px;
transition: all 0.618s;
}
#go:hover {
background-color: rgba(251, 114, 153, 0.7);
}


>   效果:
>
>   [外链图片转存中...(img-O1nG4DKE-1684658676673)]
>
>   >   非空校验:
>   >
>   >   [外链图片转存中...(img-XHBChGsF-1684658676674)]

---
>**文章到此结束!谢谢观看** 
>可以叫我 ***小马***,我可能写的不好或者有错误,但是一起加油鸭*🦆*!
>>前端知识就讲解这么多了!
>>
>>*   我们只是了解而已,没必要去背,不会的忘了的,去查文档就行了!
>>*   边查边用!
>>
>>后续的后端知识非常重要!敬请期待我的讲解!

---

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

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

相关文章

OpenLayers入门教程汇总目录

前言 本篇作为OpenLayers入门教程的目录&#xff0c;用于整理汇总专栏所有文章&#xff0c;方便查找。 入门 Gis开发入门&#xff0c;OpenLayers、Leaflet、Maplibre-gl和Cesiumjs地图引擎介绍以及几种地图服务vms、vmts介绍vue项目集成并使用OpenLayers地图的两种方式 加…

记ABAC的落地实践

为什么使用ABAC 一般提到授权&#xff0c;我们就会想到角色&#xff08;role&#xff09;。什么样的用户拥有什么样的角色可以怎么操作什么样的资源&#xff0c;这是我们普遍使用的权限系统的模型。这里的角色实质上是包含了一组用户操作资源的规则集合。一旦角色被创建&#…

【RISC-V】执行环境

裸机程序 操作系统 虚拟化 RISC-V处理器3种模式 机器模式(M模式) 安全执行环境&#xff0c;通常运行SBI固件&#xff0c;为操作系统提供服务。 特权模式(S模式) 运行操作系统内核&#xff0c;为应用程序提供服务。 用户模式(U模式) 运行应用程序。 虚拟化新增特权模式 …

Boundary IoU:Improving Object-Centric Image Segmentation Evaluation总结笔记

Boundary IoU:Improving Object-Centric Image Segmentation Evaluation&#xff08;边界Iou&#xff1a;改进以对象为中心的图像分割评价&#xff09; 目录 一、论文出发点 二、论文核心思想 三、相关工作 四、敏感度分析 五、Boundary IoU定义和实验证明 六、应用 七…

【系统移植】uboot 通过 NFS 加载根文件系统(一) —— 网络环境配置

前面试过了SD卡烧录根文件系统&#xff0c;然后借助环境变量 bootargs 来加载SD卡中的根文件系统&#xff0c;但是实际开发需要经常对文件做增删改等操作&#xff0c;所以将根文件系统放在SD上不大合适。 因此&#xff0c;最常用的做法是把根文件系统放在NFS服务端&#xff08…

Spring事务及事务传播机制

一.事务的含义:多个操作封装在一起&#xff0c;要么同时执行成功&#xff0c;一旦有一个操作执行失败&#xff0c;那么全部执行失败。这里给大家举个例子:比如A给B转账50元&#xff0c;而B没有收到这50元&#xff0c;此时A转账B这个操作也需要进行回滚&#xff0c;恢复到A给B没…

HTTP 协议的基本格式

HTTP 什么是HTTP?HTTP是应用层的一个重要协议.它定义了浏览器怎样向服务器请求文件,以及服务器怎样把文件传送给浏览器. 我们打开浏览器,手动输入一个网址:baidu.com.那么此时浏览器就会给百度的服务器发送请求.百度服务器在返回一个html的响应. 那么我们如何学习HTTP协议呢…

【系统移植】uboot 通过 NFS 加载根文件系统(二) —— 修改环境变量 bootcmd、bootargs

上一部分已经配置好了网络环境&#xff0c;我们要修改环境变量以保证开发板可以正常启动&#xff0c;uboot 环境变量中比较重要的环境变量就是 bootcmd 和 bootargs 目录 1、修改自启动命令 — bootcmd 2、修改自启动参数 —— bootargs (1) root/dev/nfs rw (2) nfsroot …

Godot引擎 4.0 文档 - 循序渐进教程 - 创建你的第一个脚本

本文为Google Translate英译中结果&#xff0c;DrGraph在此基础上加了一些校正。英文原版页面&#xff1a; Creating your first script — Godot Engine (stable) documentation in English 创建你的第一个脚本 在本课中&#xff0c;您将编写您的第一个脚本&#xff0c;使用…

Datacom-HCIE 题库 02(10月26日更新)--含解析

单选题 1.[试题编号&#xff1a;189785] &#xff08;单选题&#xff09;如图所示&#xff0c;VTEP1上在BD20域内开启了ARP广播抑制功能&#xff0c;并且VTEP1通过 BGP EVPN路由学习到了PC2的ARP信息&#xff0c;则PC1发送的针对PC2的ARP请求&#xff0c;VIEP1在转发给VIEP2时…

设备采购信息管理系统

系列文章 任务14 设备采购信息管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试界面展示添加采购信息按编号查找采购信息按设备编号查找…

vue记录鼠标拖拽划过位置并将划过位置变色

首先 我们要做一个这样的基本组件 <template><div><!--循环遍历 List数组用当前下面当做key值然后定义了 onDragStart 鼠标拖动时触发定义 onDragEnd 拖动结束后触发定义 onDragOver 记录所有鼠标拖动经过的位置--><divclass"skeleton"v-f…

DAY 63 mysql的高级语句:存储过程

什么是存储过程 存储过程是一组为了完成特定功能的SQL语句集合。 存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来&#xff0c;这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时&#xff0c;只需要调用它即可…

数据结构之堆详解

目录 1.什么是堆 堆的定义 结构体定义与函数接口 堆的初始化 堆的销毁 入堆 向上调整算法 大堆 出堆 向下调整算法 返回堆顶元素 判空 堆的应用 1.什么是堆 知道以上的存储方法&#xff0c;对于完全二叉树&#xff0c;有一个叫做堆的结构&#xff0c;堆本质就是一…

内核调试工具crash使用

内核调试工具crash使用 前言初识获取vmlinuxDwarf Error: wrong version in compilation unit header (is 5, should be 2, 3, or 4) 其他 前言 在编写内核驱动的过程中&#xff0c;时不时就导致内核崩溃&#xff0c;也没啥好的调试方法&#xff0c;要么dmesg打印内核日志&…

socket | 网络套接字、网络字节序、sockaddr结构

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

量化论文学习之《基于 CNN-LSTM 混合模型的股价 预测》

主要原理 CNN-LSTM 混合模型首先使用 CNN 来提取时间序列数据的特征&#xff0c;然 后将特征输入进 LSTM 模型中来进行下一交易日股票收盘价的预测。 数据处理 使用数据 作者发现加入volume,pctChg后效果变差&#xff0c;可能原因是加入了相关性较低的特征后造成了数据冗余…

Ubuntu挂载阿里云盘

目录 所需环境安装docker安装rclone获取阿里云盘token 获取docker镜像并运行获取本机IP信息总结rclone配置挂载网盘到本地文件夹开机启动 所需环境 安装docker 使用官方脚本进行全自动安装 curl -fsSL https://test.docker.com -o test-docker.shsudo sh test-docker.sh安装r…

Spring Boot 可执行 Jar 包运行原理

Spring Boot 有一个很方便的功能就是可以将应用打成可执行的 Jar。那么大家有没想过这个 Jar 是怎么运行起来的呢&#xff1f;本篇博客就来介绍下 Spring Boot 可执行 Jar 包的运行原理。 打可执行 Jar 包 将 Spring Boot 应用打成可执行 Ja r包很容易&#xff0c;只需要在 p…

数字信号处理基础(一):常用信号产生

目录 1. 写在前面2. 连续信号和离散信号2.1连续信号2.2 离散信号 3. 常用信号的产生3.1 单位脉冲序列3.2 单位阶跃序列3.3 指数函数3.4 正弦信号和余弦信号3.5 sinc函数3.6 矩形脉冲信号 4. 信号卷积5. 完整代码 1. 写在前面 为了更好的理解通信原理系列文章&#xff0c;在此补…