JavaScript—javaEE

文章目录

  • 1.关于JavaScript
  • 2.引入的方式
  • 3.输入输出
  • 4.语法
    • 4.1变量
    • 4.2基本数据类型
    • 4.3运算符
    • 4.4数组
    • 4.5函数
    • 4.6对象
  • 5.dom
    • 5.1获取元素
    • 5.2操作元素
    • 5.3表单控件
    • 5.4样式:style属性
    • 5.5模仿和服务端交互
  • 6.ajax
    • 6.1概念
    • 6.2作用
    • 6.3Ajax代码
    • 6.4Ajax发get请求
    • 6.5Ajax发post请求
    • 6.6Ajax封装

1.关于JavaScript

(1)HTML中引入js代码,就可以运行了,改变dom,bom相关的信息
(2)网页dom元素:标签内容、属性、事件等

事件:HTML标签中带on开头的属性都是事件函数,绑定某个或某些dom元素的事件,写js代码完成事件,也叫事件注册,事件发生时自动执行这些函数

(3)bom:浏览器对象模型,如历史记录、前进、后退、URL地址栏等

(4)js用于选择某个/某些元素,调用api/属性来修改相关信息,如标签内容、属性的值等

2.引入的方式

(1)HTML标签中绑定on开头的事件函数

<!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>Document</title>
</head>
<body>
    <input type="button" value="点击" onclick="alert(111);">
</body>
</html>

在这里插入图片描述
(2)script中写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>Document</title>
</head>
<body>
    <div>111</div>
    <script>
        // 网页加载完就执行一次
        alert(222)
    </script>
</body>
</html>

在这里插入图片描述
点击确定后
在这里插入图片描述

(3)引入外部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>Document</title>
</head>
<body>
    <div>111</div>
    <script src="3.js"></script>
</body>
</html>
alert(222)

3.输入输出

(1)prompt():输入
(2)alert():弹出窗口
(3)console.log():开发者工具,控制台打印信息

<!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>Document</title>
</head>
<body>
    <script>
        prompt("请输入您的姓名:")
        alert("弹框(提示的类容)")
        console.log("控制台输出")
    </script>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
右键检查:在这里插入图片描述

4.语法

4.1变量

(1)js是动态类型(弱类型)的语言,一个变量的类型运行起来才确定,编译时不检查
(2)使用var来定义变量,可以定义数值型、字符串型、Boolean

4.2基本数据类型

(1)数值型(number)

注意:‘-’只能适用于数值操作,会将字符串转换为数值;
‘+’可以使用于数值,也可以使用于字符串拼接

<!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>Document</title>
</head>
<body>
    <script>
        // NaN: 表示当前的结果不是一个数字
        console.log("haha" - '10')
        // 将'100'字符串转化为100数值
        console.log('100'-10)
        // 将10转化为'10'字符串进行拼接
        console.log('100'+10)
    </script>
</body>
</html>

在这里插入图片描述
(2)字符串(String)

(1)单引号或者双引号都可以
(2)如果字符串本身包含引号,单引号套双引号或者双引号套单引号都可以
(3)也包含字符串内置的属性及方法,如length、substring等

<!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>Document</title>
</head>
<body>
    <script>
        var a = "haha";
        var b = 'haha';
        var msg1 = "My name is 'zhangsan'";
        var msg2 = 'My name is "zhangsan"';
    </script>
</body>
</html>

(3)boolean:和Java类似
(4)空值(null):自己赋值一个变量的值是null
(5)未被定义的(undefined):一个变量没有被初始化

<!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>Document</title>
</head>
<body>
    <script>
        var a;
        var b = null;
        console.log(a);
        console.log(b);
    </script>
</body>
</html>

在这里插入图片描述

4.3运算符

注意:==:存在类型转换,使用在只判断值是否相等
===:不存在类型转换,使用在判断值和类型是否相等

<!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>Document</title>
</head>
<body>
    <script>
        if(10 == '10'){
            console.log("==");
        }
        if(10 === '10'){
            console.log("===");
        }
    </script>
</body>
</html>

在这里插入图片描述

4.4数组

(1)初始化数组

<!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>Document</title>
</head>
<body>
    <script>
        var a1 =  new Array();
        var a2 = [];
        var a3 = [1,2,'abc',false];
        console.log(a1);
        console.log(a2);
        console.log(a3);
        console.log(a3[-1]);// undefined
        console.log(a3[4]);// undefined
    </script>
</body>
</html>

在这里插入图片描述

(2)包含和java类似的属性和方法

length:长度;
push(值):添加元素
splice(起始索引,数量):从起始位置开始删除指定数量的元素

<!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>Document</title>
</head>
<body>
    <script>
        var a3 = [1,2,'abc',false];
        console.log(a3.length);
        a3.push(6);
        console.log(a3);
        a3.splice(2,2);
        console.log(a3);
    </script>
</body>
</html>

在这里插入图片描述

(3)遍历数组

for循环;
for(var i of arr)

<!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>Document</title>
</head>
<body>
    <script>
        var a3 = [1,2,3,4,5,6,7];
        var newArr = [];
        for(var i = 0;i < a3.length;i++){
            if(a3[i] % 2 == 0){
                newArr.push(a3[i]);
            }
        }
        console.log(newArr);
        for(var i of a3){
            console.log(i);
        }
    </script>
</body>
</html>

在这里插入图片描述

4.5函数

(1)定义

function 函数名(参数){
函数体
return
}

var 变量名 = function(参数)

(2)调用:函数名(传入参数值)
(3)函数的参数,少传或者多传都不会报错

<!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>Document</title>
</head>
<body>
    <script>
    	//调用函数
        sum(1,2);
        sum(1);//不会报错
        sum(1,2,3);//不会报错
        //定义函数
        function sum(a,b){
            alert("a="+a+",b="+b)
        }
        // 全局变量
        var num = 10;
        console.log(num);//10
        function test1() {
            // 全局变量
            num = 20;
            console.log(num);//20
        }
        function test2() {
            // 局部变量
            var num = 30;
            console.log(num);//30
        }
        test1();
        test2();
        console.log(num);//20
    </script>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.6对象

(1)定义

var a = {
属性名a:属性值1,
属性名b:属性值2
};

var a = new Object()

(2)属性值的获取:对象变量名.属性名或者变量名[‘属性名’]
(3)属性的添加/修改:对属性进行赋值,如果属性已经有值就会对其进行修改,如果没有就会添加对应属性
(4)遍历对象

for(var i in p){
}

<!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>Document</title>
</head>
<body>
    <script>
        // 定义对象
        var p = {
            username: 'zhangsan',
            age: 19,
            run: function(){
                alert(222)
            },
            arr: [1,2,3]
        };
        // 获取属性
        console.log(p.age);
        console.log(p['username']);
        // 添加
        p.password = '123';
        // 修改
        p.username = 'lisi'
        // 遍历对象
        for(var i in p){
            console.log('属性名:'+i+'属性值:'+p[i])
        }
    </script>
</body>
</html>

5.dom

5.1获取元素

(1)获取单个元素:document.querySelector(选择器字符串)
(这里选择器字符串必须保证只能选择一个元素)
(2)获取多个元素:document.querySelectorAll(选择器字符串)

<!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>Document</title>
</head>
<body>
    <ul>
        <li>1</li>
        <li id = 'l2'>2</li>
        <li>3</li>
    </ul>
    <script>
        // 获取多个元素
        var lis = document.querySelectorAll('ul>li')
        console.log(lis);
        // 获取单个元素
        var l2 = document.querySelector('#l2')
        console.log(l2);
    </script>
</body>
</html>

在这里插入图片描述

5.2操作元素

(1)读:var content = dom元素.innerHTML
(2)写:dom元素.innerHTML = ‘内容’
(这里的内容可以是标签,浏览器会渲染出来)

<!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>Document</title>
</head>
<body>
    <ul>
        <li>1</li>
        <li id = 'l2'>2</li>
        <li>3</li>
    </ul>
    <img src="花花.jpg">
    <script>
        // 获取l2标签的内容
        var l2 = document.querySelector('#l2')
        console.log(l2);
        // console.log(l2.innerText);
        console.log(l2.innerHTML);//优选
        // 给l2标签重新赋值
        // l2.innerText = '<p>开心</p><p>快乐</p>';//慎选
        l2.innerHTML = '<p>开心</p><p>快乐</p>';
        // 修改图片的路径
        var img = document.querySelector("img");
        img.src = '落日.jpg';
    </script>
</body>
</html>

innerText的效果:
在这里插入图片描述
innerHTML的效果:
在这里插入图片描述

5.3表单控件

(1)value属性(input文本框等)
(2)checked属性(单选、复选框)
(3)selected属性(下拉菜单)
(4)on开头的事件函数

三要素:事件源、事件类型、事件的回调函数;
注册事件:绑定一个dom元素的事件函数
回调函数:事件发生后,浏览器自动执行函数代码
在这里插入图片描述

<!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>Document</title>
</head>
<body>
    <input id="username" type="text" value="123">
    <input id="play" type="button" value="播放">
    <script>
        // 获取元素(使用id选择器)
        var username = document.querySelector("#username");
        console.log(username.value);// 123
        // 禁用
        // username.disabled = 'disabled';
        // 获取元素(使用id选择器)
        var play = document.querySelector("#play");
        var playValue = play.value;
        //绑定点击事件(实现如果是播放,点击一下就暂停,如果是暂停,点击一下就播放)
        play.onclick = function(e){
            console.log(e.target)
            // 这样写有问题:playValue是初始化第一次获取的值(不会变)
            // play.value = playValue == "播放" ? "暂停" : "播放";
            play.value = play.value == "播放" ? "暂停" : "播放";
        }
    </script>
</body>
</html>

在这里插入图片描述

5.4样式:style属性

(1)因为style属性的值可能有多个,调用的时候,dom元素.style.css键转驼峰式,如p标签.style.color;p标签.sytle.textIndent
(2)要修改的样式较多,以上的方式就不合适了,推荐借助css,改class属性,通过className来完成

<!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>Document</title>
    <style>
        .black {
            color: black;
            text-indent: 2em;
        }
        .red {
            color: red;
            text-indent: 0;
        }
    </style>
</head>
<body>
    <!-- p标签:样式的颜色是黑色,缩进2个文字 -->
    <p id="p1" style="color: black; text-indent: 2em;">开心</p>
    <input id="i1" type="button" value="点击">
    <p id="p2" class="black">开心</p>
    <input id="i2" type="button" value="点击">
    <script>
        var p1 = document.querySelector("#p1");
        var i1 = document.querySelector("#i1");
        i1.onclick = function(){
            var color = p1.style.color;
            console.log("color: "+color);
            // js中,变量也可以使用在if中作为条件
            // if(color) 如果字符串有值(长度>0)
            // if(!color) 如果是undefined或是null或是空字符串
            if(!color || color == "black"){
                //如果css要修改的内容比较多,就不太方便
                p1.style.color = "red";
                p1.style.textIndent = "0";
            }else{
                p1.style.color = "black";
                p1.style.textIndent = "2em";
            }
        }
        //要修改的样式较多的时候推荐使用
        var p2 = document.querySelector("#p2");
        var i2 = document.querySelector("#i2");
        i2.onclick = function(){
            //获取p2的类名,class是js中的关键字,所以不能使用p2.class=>p2.className
            var className = p2.className;
            if(className == "black"){
                p2.className = "red";
            }else{
                p2.className = "black";
            }
        }
    </script>
</body>
</html>

5.5模仿和服务端交互

(1)提交登录发送数据

<!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>Document</title>
</head>
<body>
    <form action="xxx">
        <!-- placeholder:水印 -->
        用户名:<input type="text" name="username" placeholder="请输入您的姓名">
        <br>
        密码:<input type="password" name="password" placeholder="请输入您的密码">
        <br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
点击登录,就会跳转到以下路径,以下路径中,?之后的是请求的数据(queryString),键=值,多个键值对之间是&间隔
在这里插入图片描述
(2)模仿和服务端交互

<!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>Document</title>
</head>
<body>
    <input type="text" name="username" placeholder="请输入学生姓名">
    <br>
    <input id="search" type="button" value="搜索">
    <br>
    <ul></ul>
    <script>
        // 获取元素
        var search = document.querySelector("#search");
        var ul = document.querySelector("ul");
        //绑定点击事件
        search.onclick = function(){
            //发请求:先获取输入的搜索内容再发请求
            //获取响应数据
            //构造一个假数据学生列表作为响应数据
            //列表使用数组,学生使用json对象
            var students = [{
                name: '张三',
                age: 18
            },{
                name: '李四',
                age: 19
            }];
            // 将要展示的内容最后赋值到content中
            var content = '';
            //遍历数组,拼接要展示在ul中的内容
            for(var student of students){
                content += `
                    <li>姓名:${student.name},年龄:${student.age}</li>
                `
            }
            // 读取标签内容
            ul.innerHTML = content;
        }
    </script>
</body>
</html>

在这里插入图片描述
点击搜索,就发起一个到服务端的请求,接收到服务端返回的响应数据后,展示在ul
在这里插入图片描述

6.ajax

可以是任意的数据格式,自己写JavaScript代码法请求,怎么设置Content-Type和body都可以

6.1概念

一种在不刷新网页的情况下,在JavaScript中以异步回调的方式法http请求的技术

6.2作用

(1)用户的体验更好,因为可以不刷新网页
(2)效率更高,只需要传输数据,而以刷新网页的方式来实现动态网页,数据传输量会更多(数据传输量指的是网页中不变的部分,看两次响应中body(HTML)中不变的部分和网页中不变的部分)

6.3Ajax代码

Ajax代码写在< script > 中,页面加载就发Ajax请求,页面初始化就获取数据,构建网页内容,也可以写在用户交互的标签中,例如:

< input type = “button” onclick = “sendAjax()” >
< script >
function sendAjax(){
Ajax代码
}

6.4Ajax发get请求

<!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>Document</title>
</head>
<body>
    <script>
        // 1. 创建 XMLHttpRequest 对象
        let httpRequest = new XMLHttpRequest();
        // 2. 默认异步处理响应. 需要挂在处理响应的回调函数.
        httpRequest.onreadystatechange = function () {
            // readState 表示当前的状态. 
            // 0: 请求未初始化
            // 1: 服务器连接已建立
            // 2: 请求已接收
            // 3: 请求处理中
            // 前三个一般不做处理
            // 4: 请求已完成,且响应已就绪
            if (httpRequest.readyState == 4) {
                // status 属性获取 HTTP 响应状态码
                console.log(httpRequest.status);
                // responseText 属性获取 HTTP 响应 body
                console.log(httpRequest.responseText);
            }
        }
        // 3. 调用 open 方法设置要访问的 url
        httpRequest.open('GET', 'https://www.baidu.com');
        // 4. 调用 send 方法发送 http 请求
        httpRequest.send();
    </script>
</body>
</html>

6.5Ajax发post请求

<!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>Document</title>
</head>
<body>
    <input type="text" name="searchText" placeholder="请输入搜索内容">
    <br>
    <input type="button" value="搜索" onclick="search()">
    <script>
        function search(){
            // 1. 创建 XMLHttpRequest 对象
            let httpRequest = new XMLHttpRequest();
            // 2. 默认异步处理响应. 需要挂在处理响应的回调函数.
            httpRequest.onreadystatechange = function () {
                // readState 表示当前的状态. 
                // 0: 请求未初始化
                // 1: 服务器连接已建立
                // 2: 请求已接收
                // 3: 请求处理中
                // 前三个一般不做处理
                // 4: 请求已完成,且响应已就绪
                if (httpRequest.readyState == 4) {
                    // status 属性获取 HTTP 响应状态码
                    console.log(httpRequest.status);
                    // responseText 属性获取 HTTP 响应 body
                    console.log(httpRequest.responseText);
                }
            }
            // 3. 调用 open 方法设置要访问的 url
            httpRequest.open('POST', 'https://www.baidu.com');
            // 4. 调用 setRequestHeader 设置请求头
            httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            // 5. 调用 send 方法发送 http 请求
            httpRequest.send('name=zhangsan&age=18');
        }
    </script>
</body>
</html>

在这里插入图片描述

6.6Ajax封装

<!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>Document</title>
</head>
<body>
    <script>
        function search() {
            ajax({
                method: "post",
                url: "XXX",
                contentType: "application/x-www-form-urlencoded",
                body: "search=搜索内容",
                callback: function(status,resp){
                    console.log(status);
                    console.log(resp);
                }
            });
        }
        // 参数 args 是一个 JS 对象, 里面包含了以下属性
        // method: 请求方法
        // url: 请求路径
        // body: 请求的正文数据
        // contentType: 请求正文的格式
        // callback: 处理响应的回调函数, 有两个参数, 响应正文和响应的状态码
        function ajax(args) {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
                // 0: 请求未初始化
                // 1: 服务器连接已建立
                // 2: 请求已接收
                // 3: 请求处理中
                // 4: 请求已完成,且响应已就绪
                if (xhr.readyState == 4) {
                    args.callback(xhr.status, xhr.responseText)
                }
            }
            xhr.open(args.method, args.url);
            if (args.contentType) {
                xhr.setRequestHeader('Content-type', args.contentType);
            }
            if (args.body) {
                xhr.send(args.body);
            } else {
                xhr.send();
            }
        }
    </script>
</body>
</html>

抓包看到的内容:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学成在线笔记+踩坑(4)——【媒资管理模块】上传图片,Nacos+Gateway+MinIO

导航&#xff1a; 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 1. 媒资管理模块简介 1.1 模块介绍 1.2 业务流程 1.2.1 上传课程图片 1.2.2 上传视频 1.2.3 处理视频 1.2.4 审核媒资 1.2.5 绑定媒…

Redis原理

Redis原理 数据结构 动态字符串SDS Redis中key是字符串&#xff0c;value是字符串或字符串集合。不过redis没有直接使用C语言的字符串。因为C中字符串存在问题&#xff1a;①获取字符串长度需要运算②非二进制安全③不可修改。 //c语言&#xff0c;声明字符串&#xff1a; …

字节岗位薪酬体系曝光,看完感叹:不服真不行

曾经的互联网是PC的时代&#xff0c;随着智能手机的普及&#xff0c;移动互联网开始飞速崛起。而字节跳动抓住了这波机遇&#xff0c;2015年&#xff0c;字节跳动全面加码短视频&#xff0c;从那以后&#xff0c;抖音成为了字节跳动用户、收入和估值的最大增长引擎。 自从字节…

媒体宣传的优势与重要性

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传日益成为企业和品牌宣传推广的重要手段&#xff0c;媒体的宣传报道更有权威性&#xff0c;能够帮助品牌进行背书&#xff0c;更有权威性&#xff0c;另外媒体的报道在搜索引擎中…

智能文案改写工具-智能改写工具免费

智能写作机器人 智能写作机器人&#xff0c;这是一种让人类写作变得更加简单的创新技术。它的出现&#xff0c;为内容生产领域带来了巨大的进步&#xff0c;不仅提高了人们的写作效率&#xff0c;还让优质的内容更容易被产生和共享。现在&#xff0c;让我们来了解一下智能写作…

Windows环境下NVM安装后Node/NPM命令无法使用

问题&#xff1a;Windows环境下安装nvm后&#xff0c;使用nvm安装node&#xff0c;无法使用node相关命令。 解决方案&#xff1a;注意安装的时候有两个路径&#xff0c;第一个是nvm所在的路径&#xff0c;第二个是nodejs所在的路径&#xff0c;大家需要在对应的目录下找到路径…

Python爬虫实战——获取电影影评

Python爬虫实战——获取电影影评 前言第三方库的安装示例代码效果演示结尾 前言 使用Python爬取指定电影的影评&#xff0c; 注意&#xff1a;本文仅用于学习交流&#xff0c;禁止用于盈利或侵权行为。 操作系统&#xff1a;windows10 家庭版 开发环境&#xff1a;Pycharm Co…

Linux嵌入式uboot使用tftp网络启动加载zImage、设备树

文章目录 一、前言二、Linux U-boot 相关命令&#xff08;1&#xff09;help 命令&#xff08;2&#xff09;printenv 命令&#xff08;3&#xff09;setenv 函数&#xff08;4&#xff09;saveenv 函数 三、tftp启动linux内核步骤&#xff08;1&#xff09;进入u-boot模式&…

vue:生成二维码 qrcode、vue-qr(二维码中间可带logo)

一、方法一 qrcode qrcode - npm 1.1、安装 yarn add qrcode 1.2、页面引入 import QRCode from qrcode; 1.3、方法里边使用 getQRCodeUrl(){ QRCode.toDataURL(hello world,{color: {dark:"#010599FF",light:"#FFBF60FF"}}).then((url) > {// 获…

基于Html+Css的图片展示25

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Linux+云服务器

目录 前言 一、Linux介绍 二、Linux 环境搭建 2.1 云服务器 2.2 XShell 终端 三、Linux 常用命令 3.1操作目录的命令 3.1.1 ls 【list的缩写】 双击某个目录 3.1.2 pwd 【print working directory的缩写】打印当前所处地址 3.1.3 cd 【change directory的缩写】切…

yolov5训练自己的目标检测模型

yolov5训练自己的目标检测模型 1.克隆项目并配置环境 1.1克隆项目 进入GitHub下载yolov5源码 点此进入 选择分支v5.0&#xff0c;并下载源码 anaconda激活相应环境 activate pytorch进入项目存放的地址 E: cd yolov5-master1.2 yolov5项目结构 ├── data&#xff1a;主…

Java版本工程管理系统软件源码 自主研发,工程行业适用

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

Zimbra 远程代码执行漏洞(CVE-2019-9670)漏洞分析

Zimbra 远程代码执行漏洞(CVE-2019-9670)漏洞分析 漏洞简介 Zimbra是著名的开源系统&#xff0c;提供了一套开源协同办公套件包括WebMail&#xff0c;日历&#xff0c;通信录&#xff0c;Web文档管理和创作。一体化地提供了邮件收发、文件共享、协同办公、即时聊天等一系列解决…

集合专题·拔高·壹

文章目录 1 Collection单列集合、Map双列集合1.1 Collection单列集合1.1.1 Collection单列集合及其实现类1.1.1.1 list集合与Array数组1.1.1.1.1 ArrayList1.1.1.1.2 LinekdList1.1.1.1.2 Vector1.1.1.1.2.1 ArrayList、Vector &#xff08;线程安全&#xff09;的区别是什么1.…

【elasticsearch部署】

安装elasticsearch 1.部署单点es1.1.创建网络1.2.加载镜像1.3.运行 2.部署kibana2.1.部署2.2.DevTools 3.安装IK分词器3.1.在线安装ik插件&#xff08;较慢&#xff09;3.2.离线安装ik插件&#xff08;推荐&#xff09;1&#xff09;查看数据卷目录2&#xff09;解压缩分词器安…

基于web的电动车租赁管理系统C#+asp.net+sqlserver

具体功能如下&#xff1a;个人信息管理&#xff1a;实现登陆后对个人信息进行修改和查看的功能。 修改登录密码&#xff1a;实现登陆后对个人密码进行修改的功能。 申请租车订单&#xff1a;客户用户登陆后可以申请租车订单。同时可以查看租赁订单信息。 售后评价管理&#xff…

【PR 基础】设置上下黑白边的两种方法

方法1 点击 文件-》新建-》旧版标题 点击确定 点击矩形工具 利用矩形工具框选出上下黑白边 款选完成后点击关闭 将刚创建的字幕拖入轨道 可以修改其持续时长与视频时长保持一致 如果想要修改字幕可以双击来修改 比如可以将颜色改为黑色 方法2 点击号&#xff0c;再选择安全边…

C语言入门篇——函数篇

目录 1、什么是函数 2、函数的分类 2.1库函数 2.2自定义函数 3、函数的参数 3.1实际参数&#xff08;实参&#xff09; 3.2形式参数&#xff08;形参&#xff09; 4、函数的调用 4.1传值调用 4.2传址调用 5、函数的嵌套调用和链式访问 5.1嵌套调用 5.2链式访问 6、…

【C++】模板

目录 前言 1.函数模板 1.1使用 1.2实现逻辑 1.3实例化 1.4匹配规则 2.类模板 2.1使用 实例化 前言 &#x1f397;️照以前的想法&#xff0c;若我们想实现一个交换函数&#xff0c;需要这样写。 void swap(int& x, int& y) {int tmp x;x y;y tmp; }int …