JavaScript笔记+案例

news2025/1/16 17:42:56

前端开发 第四节JavaScript

JavaScript:概要

概要:

  • JavaScript,是一门编程语言。浏览器就是JavaScript语言的解释器。

  • DOM和BOM

    相当于编程语言内置的模块。
    例如:Python中的re、random、time、json模块等。
    
  • jQuery

    相当于是编程语言的第三方模块
    例如:requests、openpyxl
    

1. JavaScript

1.1 代码位置

1.写在head标签内部

2.写在body结尾的内部

推荐写在body结尾的内部

原因:

1.HTML是从上往下执行,如出现输出语句,则先输出再显示页面内容

2.如JavaScript内容过多,则影响页面显示速度,影响用户体验

JS代码存在形式

  • 存在HTML文件中

  • 存放在JS文件中,再引入HTML

1.2 注释

  • HTML的注释
<!-- 注释内容 -->
  • CSS的注释
/* 注释内容 */
  • JavaScript的注释
// 注释内容
/* 注释内容 */

1.3 变量

  • Python,编程语言。

    name = "刘备"
    print(name)
    
  • JavaScript,编程语言。

    <script type="text/javascript">
        var name = "刘备";
        console.log(name);	// 输出
    </script>
    

1.4 字符串类型

// 声明
var name = "刘备";
var name = String("刘备");
// 常见功能
var name = "中国联通";

var v1 = name.length;	// 获取长度
var v2 = name[0];		// 索引字符
var v3 = name.trim();	// 去除空白
var v4 = name.substring(0,2);	// 前取后不取

案例:跑马灯

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<span id="txt">中国联通</span>
<script type="text/javascript">
    function show(){
        // 在HTML中找到id为txt的标签并获取他的内容
        var tag = document.getElementById("txt");
        var dataString = tag.innerText;

        // 动态起来,把文本中的第一个字符放在字符串的最后面
        var firstChar = dataString[0];
        var otherString = dataString.substring(1, dataString.length);
        var newText = otherString + firstChar;

        // 在HTML标签中更新内容
        tag.innerText = newText;

        console.log(dataString);
    }
    setInterval(show, 1000)

</script>
</body>
</html>

1.5 数组

// 定义
var v1 = [11,22,33,44];
var v2 = Array([11,22,33,44]);
var v1 = [11,22,33,44];

v1[1]
v1[0] = "刘备";

v1.push("联通");		// 尾部追加 [11,22,33,44,"联通"]
v1.unshift("联通"); 	// 前部追加 ["联通",11,22,33,44]
v1.splice(索引,0,元素);
v1.splice(1,0,"中国"); // 自定义追加 [11,"中国",33,44]

v1.pop()	// 尾部删除
v1.shift()	// 头部删除
v1.splice(索引位置,1)
v1.splice(2,1)	// 索引为2的元素删除 [11,22,44]
var v1 = [11,22,33,44];	
// 注意:循环的是索引不是元素
for(var idx in v1){
    // idx=0/1/2/3/		data=v1[idx]  
}
var v1 = [11,22,33,44];	
for(var i=0; i<v1.length; i++){
    // i=0/1/2/3	data=v1[idx]
}

案例:动态数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <ul id="city">

    </ul>
<script>
    var cityList = ["北京","上海","深圳"];
    for (var idx in cityList){
        var text = cityList[idx];

        // 创建li标签
        var tag = document.createElement("li")
        // 在li标签中写入内容
        tag.innerText = text;
        // 添加到id=city标签里面
        var parentTag =  document.getElementById("city");
        parentTag.appendChild(tag)
    }
</script>
</body>
</html>

1.6 对象(字典)

info = {
	"name":"刘备"
    "age":50
}

info = {
	name:"刘备"
    age:50
}
info.age
info.name = "关羽"

delete info["age"]
info = {
    name:"刘备",
    age:18
}

for(var key in info){
    // key=name/age		data=info[key]
}

案例:动态表格

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
            </tr>
        </thead>
        <tbody id="body">
<!--            <tr>-->
<!--                <td>1</td>-->
<!--                <td>刘备</td>-->
<!--                <td>50</td>-->
<!--            </tr>-->
        </tbody>
    </table>
<script type="text/javascript">
    var info = {id:1, name:"刘备", age:50};
    var tr = document.createElement("tr");
    for (var key in info){
        var text = info[key];
        var td = document.createElement('td');
        td.innerText = text;
        tr.appendChild(td);
    }

    var bodyTag = document.getElementById("body");
    bodyTag.appendChild(tr);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
            </tr>
        </thead>
        <tbody id="body">
<!--            <tr>-->
<!--                <td>1</td>-->
<!--                <td>刘备</td>-->
<!--                <td>50</td>-->
<!--            </tr>-->
        </tbody>
    </table>
<script type="text/javascript">
    var dataList = [
        {id:1, name:"刘备", age:50},
        {id:2, name:"刘备", age:50},
        {id:3, name:"刘备", age:50},
        {id:4, name:"刘备", age:50},
        {id:5, name:"刘备", age:50},
    ];
    for (var idx in dataList){
        var info = dataList[idx]

        var tr = document.createElement("tr");
        for (var key in info){
            var text = info[key];
            var td = document.createElement('td');
            td.innerText = text;
            tr.appendChild(td);
        }

        var bodyTag = document.getElementById("body");
        bodyTag.appendChild(tr);
    }
    
</script>
</body>
</html>

1.7 条件语句

if(条件){

}else{
    
}

if(1==1){
    
}else{

}
if(条件){

}else if(条件){

}else if(条件){

}else{
    
}

1.8 函数

# python定义函数
def func():
    函数内容...
    
# python执行函数
func()
// javascript定义函数
function func(){
	函数内容...
}
    
// javascript执行函数
func()

2.DOM

DOM是一个模块,模块可以对HTML页面中的标签进行操作。

// 根据ID获取标签
var bodyTag = document.getElementById("body");

// 获取标签中的文本
tag.innerText

// 修改标签中的文本
tag.innerText = "刘备";
// 创建标签 <div></div>
var tag = document.createElement("div");
// 标签写内容	<div>刘备</div>
tag.innerText = "刘备";

例如:

<ul id="city">
    
</ul>

<script type="text/javascript">
    // 找到标签
	var tag = document.getElementById("city");	
    
    // 生成标签和内容
    var newTag = document.createElement("li");
    newTag.innerText = "北京";
    
    // 加入标签和内容
    tag.appendChild(newTag);
</script>

2.1 事件的绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <input type="button" value="点击添加" onclick="addCityInfo()">
    <ul id="city">

    </ul>
<script type="text/javascript">
    function addCityInfo(){

        var newTag = document.createElement("li");
        newTag.innerText = "联通";

        var parentTag = document.getElementById("city");
        parentTag.appendChild(newTag);
    }
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" placeholder="请输入内容" id="txtUser" />
<input type="button" value="点击添加" onclick="addCityInfo()">
<ul id="city">

</ul>
<script type="text/javascript">
    function addCityInfo(){
        // 找到输入标签
        var txtTag = document.getElementById("txtUser");
        // 获取input框中用户输入的内容
        var newString = txtTag.value;

        // 判断用户输入是否为空,只有不为空才能继续。
        if (newString.length > 0){
            // 创建标签 <li></li>
            var newTag = document.createElement("li");
            newTag.innerText = newString;
            // 标签添加到ul中
            var parentTag = document.getElementById("city");
            parentTag.appendChild(newTag);
            // 将input框内容清空
            txtTag.value = "";
        }else{
            alert("输入不能为空");
        }
    }
</script>
</body>
</html>

3. jQuery

jQuery是一个JavaScript第三方模块(第三方类库)。

  • 基于jQuery,自己开发一个功能。

  • 现成的工具 依赖jQuery,例如:BootScript动态效果。

3.1 快速上手

  • 下载jQuery
https://jquery.com/
  • 应用jQuery
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1 id="txt">中国联通</h1>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script type="text/javascript">
    // 利用jQuery中的功能实现某些效果

    // 1.找到id=txt的标签; 2.内容修改
    $("#txt").text("广西移动");

</script>
</body>
</html>

3.2 寻找标签(直接寻找)

  • ID选择器
<h1 id="txt">中国联通</h1>
<h1>中国联通</h1>
<h1>中国联通</h1>
$("#txt")
  • 样式选择器
<h1 class="c1">中国联通</h1>
<h1 class="c1">中国联通</h1>
<h1 class="c2">中国联通</h1>
$(".c1")
  • 标签选择器
<h1 class="c1">中国联通</h1>
<div class="c1">中国联通</div>
<h1 class="c2">中国联通</h1>
$("h1")
  • 层级选择器
<h1 class="c1">中国联通</h1>
<h1 class="c1">
	<div class="c2">
        <span></span>
        <a></a>
    </div>
</h1>
<h1 class="c2">中国联通</h1>
$(".c1 .c2 a")
  • 多选择器
<h1 class="c1">中国联通</h1>
<h1 class="c1">
	<div class="c3">
        <span></span>
        <a></a>
    </div>
</h1>
<h1 class="c2">中国联通</h1>
<ul>
    <li>xx</li>
    <li>xx</li>
</ul>
$(".c3,.c2,li")
  • 属性选择器
<input type="text" name="n1" />
<input type="text" name="n1" />
<input type="text" name="n2" />
$("input[name='n1']")

3.3 间接寻找

  • 找到上一个兄弟
<div>
    <div>北京</div>
    <div id='c1'>上海</div>
    <div>深圳</div>
    <div>广州</div>
</div>
$("#c1").prev()	//找到上一个兄弟
$("#c1").next()	//找到下一个兄弟
$("#c1").next().next()	//找到下两极的兄弟
$("#c1").siblings()		//所有的系统
  • 找父子
<div>
    <div>
        <div>北京</div>
        <div id='c1'>上海
        	<div>青浦区</div>
            <div class="p10">宝山区</div>
            <div>浦东新区</div>
        </div>
        <div>深圳</div>
        <div>广州</div>
    </div>
    <div>
        <div>陕西</div>
        <div>山西</div>
        <div>河北</div>
        <div>河南</div>    
    </div>
</div>
$("#c1").parent()	// 找父级
$("#c1").parent().parent()	// 父级的父级

$("#c1").children()		// 所有的子级
$("#c1").children(".p10")	// 所有子级中寻找class=p10

$("#c1").find(".p10")		// 去所有孙级中寻找class=p10
$("#c1").find("div")		// 去所有孙级中寻找div标签

案例:菜单的切换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .menu{
            height: 700px;
            width: 200px;
            border: 1px solid red;
        }

        .header{
            padding: 5px;
            background-color: gold;
            border: 1px dotted #dddddd;
            /*更改光标*/
            cursor: pointer;    
        }

        .content a{
            display: block;
            border: 1px dotted #dddddd;
        }

        .hide{
            display: none;
        }
    </style>
</head>
<body>
<div class="menu">
    <div class="item">
        <div class="header" onclick="clickMe(this);">北京</div>
        <div class="content hide">
            <a>海淀区</a>
            <a>朝阳区</a>
            <a>大兴区</a>
            <a>昌平区</a>
        </div>
    </div>
    <div class="item">
        <div class="header" onclick="clickMe(this);">上海</div>
        <div class="content hide">
            <a>宝山区</a>
            <a>青浦区</a>
            <a>浦东新区</a>
            <a>普陀区</a>
        </div>
    </div>
</div>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script>
    function clickMe(self){
        var hashide = $(self).next().hasClass("hide")
        if(hashide){
            $(self).next().removeClass("hide")
        }else{
            $(self).next().addClass("hide")
        }
    }
</script>
</body>
</html>

在这里插入图片描述

知识点:

  • removeClass移除class样式,让菜单展开
  • addClass添加class样式,让菜单闭合
  • cursor: pointer; 更改光标

案例:菜单的切换(改进:点击展开后,其他标签自动闭合)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .menu{
            height: 700px;
            width: 200px;
            border: 1px solid red;
        }

        .header{
            padding: 5px;
            background-color: gold;
            border: 1px dotted #dddddd;
            /*更改光标*/
            cursor: pointer;
        }

        .content a{
            display: block;
            border: 1px dotted #dddddd;
        }

        .hide{
            display: none;
        }
    </style>
</head>
<body>
<div class="menu">
    <div class="item">
        <div class="header" onclick="clickMe(this);">北京</div>
        <div class="content hide">
            <a>海淀区</a>
            <a>朝阳区</a>
            <a>大兴区</a>
            <a>昌平区</a>
        </div>
    </div>
    <div class="item">
        <div class="header" onclick="clickMe(this);">上海</div>
        <div class="content hide">
            <a>宝山区</a>
            <a>青浦区</a>
            <a>浦东新区</a>
            <a>普陀区</a>
        </div>
    </div>
</div>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script>
    function clickMe(self){
        $(self).next().removeClass("hide")
        $(self).parent().siblings().find(".content").addClass("hide")
    }
</script>
</body>
</html>

3.4 操作样式

  • addClass
  • removeClass
  • hasClass

3.5 值的操作

<div id='c1'>内容</div>
$("#c1").text()		// 获取文本内容
$("#c1").text("abc")		// 设置文本内容
<input type='text' id='c2' />
$("#c2").val()		// 获取用户输入的值
$("#c2").val("aaa")		// 设置值

案例:动态创建数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="txtUser" placeholder="用户名">
<input type="text" id="txtEmail" placeholder="邮箱">
<input type="button" value="提交" onclick="getInfo()" />

<ul id="view">

</ul>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script>
    function getInfo(){
        var Username = $("#txtUser").val();
        var Email = $("#txtEmail").val();
        var dataString = Username+ "-" +Email

        var newLi1 = $("<li>").text(dataString);

        $("#view").append(dataString);
    }
</script>
</body>
</html>

3.6 事件

事件绑定:

<input type="button" value="提交" onclick="getInfo()" />

<script>
    function getInfo(){
        
    }
</script>

使用jQuery,事件绑定:

<ul>
    <li>百度</li>
    <li>谷歌</li>
    <li>搜狗</li>
</ul>

<script>
	$("li").click(function(){
        // 点击li标签时,自动执行这个函数
        // $(this)	当前点击的标签
    })
</script>

案例:删除元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    <li>百度</li>
    <li>谷歌</li>
    <li>搜狗</li>
</ul>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script>
    $("li").click(function (){
        $(this).remove();
    })
</script>
</body>
</html>

当页面框架加载完成之后执行代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    <li>百度</li>
    <li>谷歌</li>
    <li>搜狗</li>
</ul>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script>
    $(function (){
        // 当页面框架加载完成后,自动执行
    })
    $("li").click(function (){
        $(this).remove();
    })
</script>
</body>
</html>

案例:表格操作(删除功能)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="1px">
    <thead>
        <tr>
            <td>ID</td>
            <td>姓名</td>
            <td>操作</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>刘备</td>
            <td>
                <input type="button" value="删除" class="delete"/>
            </td>
        </tr>

        <tr>
            <td>2</td>
            <td>刘备</td>
            <td>
                <input type="button" value="删除" class="delete"/>
            </td>
        </tr>

        <tr>
            <td>3</td>
            <td>刘备</td>
            <td>
                <input type="button" value="删除" class="delete"/>
            </td>
        </tr>
    </tbody>
</table>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script>
    $(function (){
        $(".delete").click(function (){
            $(this).parent().parent().remove();
        })
    })
</script>
</body>
</html>

4.前端整合

  • HTML
  • CSS
  • JavaScript、jQuery
  • BootStrap(动态效果依赖jQuery)

案例:添加数据页面

人员信息录入功能,需要提供用户信息:

用户名、年龄、薪资、部门、入职时间

对于时间的选择,不能输入;选择;(插件)

  • 下载插件
https://github.com/uxsolutions/bootstrap-datepicker
  • 应用插件

导入css、js即可

  • 用法
https://bootstrap-datepicker.readthedocs.io/en/latest/
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="static/plugins/bootstrap-3.4.1-dist/css/bootstrap.css">
    <link rel="stylesheet" href="static/plugins/font-awesome-4.7.0/css/font-awesome.css">
    <link rel="stylesheet" href="static/plugins/bootstrap-datepicker-master/dist/css/bootstrap-datepicker.css">
</head>
<body>

<div class="container" style="padding-top: 50px">
    <form>
        <div class="row clearfix">
            <div class="col-md-6">
                <div class="form-group">
                    <label>用户名</label>
                    <input type="text" class="form-control" placeholder="用户名">
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label>年龄</label>
                    <input type="text" class="form-control" placeholder="年龄">
                </div>
            </div>
        </div>

        <div class="row clearfix">
            <div class="col-md-6">
                <div class="form-group">
                    <label>薪资</label>
                    <input type="text" class="form-control" placeholder="薪资">
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label>部门</label>
                    <select class="form-control">
                        <option>IT部门</option>
                        <option>HR部门</option>
                        <option>销售部门</option>
                    </select>
                </div>
            </div>
        </div>

        <div class="row clearfix">
            <div class="col-md-6">
                <div class="form-group">
                    <label>入职时间</label>
                    <input type="text" id="dt" class="form-control" placeholder="入职时间">
                </div>
            </div>
        </div>

        <div class="row clearfix">
            <div class="col-md-6">
                <button type="submit" class="btn btn-primary">提 交</button>
            </div>
        </div>


    </form>
</div>

<script src="static/js/jquery-3.6.3.min.js"></script>
<script src="static/plugins/bootstrap-3.4.1-dist/js/bootstrap.js"></script>
<script src="static/plugins/bootstrap-datepicker-master/js/bootstrap-datepicker.js"></script>
<script src="static/plugins/bootstrap-datepicker-master/js/locales/bootstrap-datepicker.zh-CN.js"></script>

<script>
    $(function (){
        $('#dt').datepicker({
           format: 'yyyy-mm-dd',
           startDate: '0',
           language: "zh-CN",
           autoclose: true
        });
    })
</script>
</body>
</html>

在这里插入图片描述

总结:

  1. 了解HTML标签、标签结构、基于它可以实现简单的页面
  2. CSS,了解基本样式;在模板的基础上修改
  3. JavaScript、jQuery,了解基本使用
  • 事件绑定/寻找标签/操作标签。
  • 导入现成插件。

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

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

相关文章

搭建代理服务器

搭建代理服务器搭建代理服务器场景ccproxy进行搭建代理服务器proxifier配置代理服务器总结搭建代理服务器 有这种情况&#xff0c;在家需要访问某个内网环境&#xff0c;但是内网的ip从外网是访问不到的&#xff0c;这种需要怎么处理呢&#xff1f; 答案是使用代理服务器。 …

索引失效原因

目录 1.最佳左前缀法则 2.不在索引列上做任何操作 3.存储引擎不能使用索引中范围条件右边的列 4.尽量使用覆盖索引 5.mysql 在使用不等于(! 或者<>)的时候无法使用索引会导致全表扫描 6..is null ,is not null 也无法使用索引 7.like以通配符开头(%abc...)mysql索…

tkinter布局详解

文章目录placepackgrid前情提要&#xff1a; Python UI 界面 tkinter初步Tkinter共有三种布局方案&#xff0c;分别是绝对位置布局 place&#xff0c; 相对位置布局 pack和网格布局 grid。place place是通过声明具体位置来进行布局的方法&#xff0c;这个具体位置既可以绝对坐…

【大数据管理】Java实现布谷鸟过滤器(CF)

实现布谷鸟过滤器&#xff0c;每当有一个小说被存储后将其加入布谷鸟过滤器&#xff0c;并能够使用布谷鸟过滤器查询上述小说是否已经被存储 一、解题思路 在介绍布谷鸟过滤器之前&#xff0c;首先需要了解布谷鸟哈希的结构。最简单的布谷鸟哈希结构是一维数组结构&#xff0…

JAVA基础知识05面向对象

目录 面向对象概述 为什么要学习面向对象&#xff1f; 1. 类和对象 1.1 类的介绍 1.2 类和对象的关系 组织代码 1.3 类的组成 1.4 创建对象和使用对象的格式 2. 对象内存图 2.1 单个对象内存图 2.2 两个对象内存图 3. 成员变量和局部变量 4. this 关键字 4.1 t…

【c语言进阶】结构体最常用知识点大全

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;c语言学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我…

【电动车】基于多目标优化遗传算法NSGAII的峰谷分时电价引导下的电动汽车充电负荷优化研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

使用Redission和Aop以及注解实现接口幂等性

关于什么是接口幂等性这里不再赘述&#xff0c;本文将使用分布式锁来解决接口幂等性的问题。 本文接口幂等判断标准&#xff1a; String name IP 请求方式 URI 参数摘要值 当相同的name来临时&#xff0c;且上一个相同name对于的接口还未正常执行完毕&#xff0c;则判断为…

Python ·信用卡欺诈检测【Catboost】

Python 信用卡欺诈检测【Catboost】 提示&#xff1a;前言 Python 信用卡欺诈检测 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python 信用卡欺诈检测【Catboost】前言一、导入包二、加载数据三、数据可视化四、…

鱼雷的发射角设置

过年嘛 放松个五六天啥的 玩了个猎杀潜航的游戏觉得那玩意挺有意思的开年了 要美赛 写个设置鱼雷发射角的小程序玩玩 游戏嘛,反正大概简易版就是这个框架,自己补充呗 各种设定啥的,没怎么关心,就是总结一下里面的平面几何..水个文章玩玩顺便练习一下pptx绘图美赛的时候估计还是…

30. PyQuery: 基于HTML的CSS选择器

目录 前言 导包 基本用法 按标签选择 标签链式操作 简便链式&#xff1a;后代选择器 类选择器 id 选择器 属性/文本选择器&#xff08;重点&#xff09; 改进多标签拿属性方法 快速总结 PyQuery的强大功能&#xff1a;修改源代码 添加代码块 修改/添加属性 删…

java spring IOC xml方式注入(数组 list集合 map集合 set集合)类型属性

我们先创建一个基本的java项目 然后引入 spring 的基本依赖 然后在src下创建一个包 我这里叫 collectiontype 和我同名 会避免一些找不到资源的麻烦 毕竟说 你们开发代码大部分会在这篇文章拿过去 当然 名称是看自己去取的 只是和我同名会方便一些 直接复制过去就好了 然后在…

C语言函数定义

函数是一段可以重复使用的代码&#xff0c;用来独立地完成某个功能&#xff0c;它可以接收用户传递的数据&#xff0c;也可以不接收。接收用户数据的函数在定义时要指明参数&#xff0c;不接收用户数据的不需要指明&#xff0c;根据这一点可以将函数分为有参函数和无参函数。将…

ARP渗透与攻防(七)之Ettercap Dns劫持

系列文章 ARP渗透与攻防(一)之ARP原理 ARP渗透与攻防(二)之断网攻击 ARP渗透与攻防(三)之流量分析 ARP渗透与攻防(四)之WireShark截获用户数据 ARP渗透与攻防(五)之Ettercap劫持用户流量 ARP渗透与攻防(六)之限制网速攻击 ARP-Ettercap Dns劫持 1.什么是DNS 1.概念 DNS是D…

汇编语言学习 下

本文承接汇编语言学习笔记 上 上篇文章记录了汇编语言寄存器&#xff0c;汇编语言基本组成部分&#xff0c;数据传送指令&#xff0c;寻址指令&#xff0c;加减法指令&#xff0c;堆栈&#xff0c;过程&#xff0c;条件处理&#xff0c;整数运算的内容 高级过程 大多数现代编程…

通信原理简明教程 | 信号、信道与噪声

文章目录1 信号与系统的基本概念2 傅里叶变换与信号的频谱2.1 信号的频谱2.2 傅里叶变换的常用性质2.3 信号的能量谱、功率谱与自相关函数2.4 信号的带宽3 线性系统与滤波器3.1 线性系统及其频率特性3.2 系统响应的频域求解3.3 滤波器2.4 信道及其特性4.1 信道的分类4.2 信道的…

兔年伊始谈闲书:三体-乌合之众-百年孤独 和《猫城记》(随笔)

引言 “ 各位读者&#xff0c;我们都兔年大吉&#xff0c;新春快乐。我本想写一篇《公有云换帅转舵后的错误经验和正经歪念》&#xff0c;但刚过年就炮火味十足&#xff0c;觉得有失体面。所以就写了篇读书的散记杂记。本文和云计算行业完全无关&#xff0c;就是一个有常识性阅…

[数据结构基础]排序算法第一弹 -- 直接插入排序和希尔排序

一. 排序的概念及分类 1.1 排序的概念 排序&#xff0c;就是使一串数据&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 1.2 常见的排序算法 图1.1按照排序算法的思想&#xff0c;将排序分为四大类&#xff1a;插入排序、选择排序…

OpenGL相关库及其关系概述

目录 1、OpenGL 2. .GLUT 3、Freeglut 4、glew 5、glfw 6、glad 1、OpenGL OpenGL只有框架没有实现&#xff0c;换句话说就是OpenGL只有函数声明没有源文件实现&#xff0c;类似于接口和虚函数。所有的实现是显卡生产商提供。比如NVIDIA或者AMD就要自己实现OpenGL函数内容…

前后端登录逻辑讲解-本文使用RSA加密过程-附代码

文章目录一、项目环境二、生成公钥私钥1.生成私钥2.查看私钥3.生成公钥4.查看公钥三、安装依赖包四、自测加解密1.纯前端自测2.前后端联调①前端登录代码改为&#xff1a;②后端登录接口代码&#xff1a;③验证五、与数据库密码进行对比&#xff08;数据库是进行了bcryptjs加密…