[JavaWeb]JS

news2024/12/28 22:06:57

目录

  • 1.JavaScript特点
  • 2. script 标签写JS代码
    • 2.1 script 标签中写JS代码
    • 2.2 使用 script 标签引入 JS 文件
    • 2.3 使用 js 的两种方式,是二选一,不能混用
  • 3. 查看 JS 错误信息
    • 3.1 chrome 浏览器查看错误信息
    • 3.2 Microsoft Edge浏览器查看错误信息
  • 4.JS变量
    • 4.1 var定义变量
    • 4.2 JavaScript 数据类型
      • 4.2.1 typeof查看数据类型
      • 4.2.2 查看特殊值类型
    • 4.3 JS运算符
      • 4.3.1 关系运算符
      • 4.3.2 逻辑运算符
  • 5.数组
    • 5.1 数组定义方式1
    • 5.2 数组定义方式2
    • 5.3 数组遍历
  • 6.JavaScript 函数
    • 6.1 JavaScript 函数定义方式
      • 6.1.1 function 关键字来定义
      • 6.1.2 将函数赋给变量
    • 6.2 JavaScript 函数注意事项和细节
  • 7.JS自定义对象
    • 7.1 自定义对象方式1:Object形式
    • 7.2 自定义对象方式2:{} 形式
  • 8.事件
    • 8.1 事件分类
    • 8.2 onload 加载完成
    • 8.3 onclick 单击事件
    • 8.4 onblur失去焦点事件
    • 8.5 onchange 内容发生改变事件
    • 8.6 onsubmit 表单提交事件
  • 9.DOM
    • 9.1 HTMLDOM
      • 9.1.1 getElementById
      • 9.1.2 getElementByName
      • 9.1.3 点击出现图片
  • 10.DOM练习

1.JavaScript特点

    1.JavaScript 是一种解释型的脚本语言,C、C++等语言先编译后执行,而 JavaScript 是在程序的运行过程中逐行进行解释,程序从上往下运行.
    2.JavaScript 是一种基于对象的脚本语言,可以创建对象,也能使用现有的对象(有对象).
    3.JavaScript 是弱类型的,对变量的数据类型不做严格的要求,变量的数据类型在运行过程可以变化.

2. script 标签写JS代码

2.1 script 标签中写JS代码

    1. 可以在 head 和 body 嵌入 script
    2. 程序执行顺序 从上到下
    3. 建议把JS代码放在head标签内

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
        a=10;
        alert(a);
    </script>
</head>
<body>
</body>
</html>

scrpt 标签的位置,可以在 head 中,也可以在 body 体

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
        a=10;
        alert(a);
    </script>
    
</head>

<body>
    <script type="text/javascript">
        b=10;
        alert("b"+b);
    </script>
</body>
</html>

2.2 使用 script 标签引入 JS 文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    
    <script type="text/javascript" src="../JS/1.js">
    	// a=100;   就相当于把这两行代码放到这里运行
		// alert(a);
    </script>
</head>
<body>
</body>
</html>
# 1.js内容
a=100;
alert(a);

2.3 使用 js 的两种方式,是二选一,不能混用

    如果你两种方式都使用了,不会报错,但是只有一个生效,前面引入的 js生效,因为程序从上至下运行,外部引用先运行.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="../JS/1.js">
        alert("script内部"+100);
    </script>
</head>
<body>
</body>
</html>
a=100;
alert("script外部引入"+a);

在这里插入图片描述

3. 查看 JS 错误信息

3.1 chrome 浏览器查看错误信息

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

3.2 Microsoft Edge浏览器查看错误信息

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

4.JS变量

4.1 var定义变量

    JavaScript 变量表示存储数据的容器,变量使用var来定义,也可以不用写var直接定义

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
        var a=20;
        b=100;
        alert(a);
        alert(b);
    </script>
</head>
<body>
</body>
</html>

4.2 JavaScript 数据类型

在这里插入图片描述

4.2.1 typeof查看数据类型

    typeof()是一个函数,返回变量的数据类型,JS是弱类型语言,数据类型可以随意改变

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    
    <script type="text/javascript">
        var a=20;
        alert(typeof(a));
        a="\'123\'"
        alert(typeof(a));
    </script>
    
</head>
<body>
</body>
</html>

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

4.2.2 查看特殊值类型

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">
        var a; //变量没有定义就是undefined
        var b=null;
        var c=10*"adf";
        alert("a"+" "+typeof(a)+" "+"b"+ " "+ b+" "+"c"+" "+c);
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

4.3 JS运算符

4.3.1 关系运算符

等于 : == 是简单的做字面值的比较
全等于:=== 除了做字面值的比较之外,还会比较两个变量的数据类型

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">
        var a=100;  //number
        var b="100"; //string 
        console.log(a==b); //true 字面值是相同的
        console.log(a===b); // false 字面值相同,但是类型不同
    </script>
</head>
<body>
    
</body>
</html>

在这里插入图片描述

4.3.2 逻辑运算符

    1. 在 JavaScript 语言中,所有的变量,都可以做为一个 boolean 类型的变量使用
    2. 0 、null、 undefined、“”(空串) 都认为是 false
    3. && 且运算,有两种情况

在这里插入图片描述
    4.|| 或运算, 有两种情况
在这里插入图片描述
    5.&& 运算 和 || 运算有短路现象
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">

       var a; //没有定义就是undefined,undefined为false
       if(a){
        alert(10);
       }

       //当表达式中,有一个为假的时候。返回第一个为假的表达式的值
       var res1 = null && 800; //null
       alert(res1);

       //当表达式中,有一个为真的时候。返回第一个为真的表达式的值
       var res2 = "abc" || 800;  //abc
       alert(res2);
    </script>
</head>
<body>
</body>
</html>

5.数组

5.1 数组定义方式1

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">
        var name1=["zs","bs","as"];
        console.log(name1); //zs,bs,as
        console.log(name1[1]); //bs

	 	var stu=[]; //空数组
        stu[0]="zx";
        stu[1]="ab";
        stu[2]="bf";
        console.log(stu[2]); //zx,ab,bf
		 console.log(stu[5]);// 如果该元素不存在,返回的就是undefined

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

5.2 数组定义方式2

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">
 
        var cars3 = new Array("Audi", "BMW", "Volvo");
        console.log("cars3=" + cars3);  //cars3=Audi,BMW,Volvo
        console.log("cars3[0]=" + cars3[0]);//Audi
        
        var cars4 = new Array();//空数组
        console.log(typeof cars4);
		cars4[0] = "法拉利";
		cars4[1] = "保时捷";
		cars4[4] = "yy";//相当于是给数组扩容,中间下标元素没有赋值,中间没有赋值的元素为 undefined
		cars4[0] = "zz";//替换
		
    </script>
</head>
<body>
</body>
</html>

5.3 数组遍历

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">

        var cars3 = new Array("Audi", "BMW", "Volvo");
        for(var i=0;i<cars3.length;i++){
            console.log(cars3[i]); //log 方法会自动换行
        }

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

在这里插入图片描述

6.JavaScript 函数

    函数是由事件驱动的,或者当它被调用时,执行的可重复使用的代码块,如果不调用函数,那么该函数时不会执行,在 js 中如果要执行函数,有两种方式 1.主动调用 2. 通过事件去触发该函数.

6.1 JavaScript 函数定义方式

6.1.1 function 关键字来定义

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">
    //定义没有返回值的函数
        function hi(){
            console.log("hello");
        }
        hi();
        
	//定义有形参的函数
	//这里的形参,不需要指定类型, name 的数据类型是由实参决定
		function f2(name) {
			alert("hi " + name);
		}
		 f2("zs");
		 
    </script>
</head>
<body>
</body>
</html>

6.1.2 将函数赋给变量

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <script type="text/javascript">
 
        var f1=function (name) {
			alert("hi " + name);
		}
      
        f1("li");
        var f3=f1; // f1赋值给f3,f3就是函数类型,也能够调用
        f3("王五");  

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

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

6.2 JavaScript 函数注意事项和细节

    1.JS 中函数的重载会覆盖掉上一次的定义

//1. JS 中函数的重载会覆盖掉上一次的定义
//2. 当你调用 f1() 时候其实调用的是 f1(name)
//3. 调用 f1(name) 如果你没有传入实参, 那么这个 name 就是 undefined

    <script type="text/javascript">
        var f1=function(){
            alert("hi");
        }
        var f1=function(name) {
			alert("hi " + name);
		}
        // f1("li"); hi li
        f1(); //hi undefined
    </script>

    2.函数的 arguments 隐形参数(作用域在 function 函数内)
(1) 隐形参数: 在 function 函数中不需要定义,可以直接用来获取所有参数的变量.

//遍历 函数的 arguments 隐形参数
//arguments 是数组
 <script type="text/javascript">
        var f1=function(){
            alert("hi");
        }
        var f1=function(name) {
			alert("hi " + name);
		}
        f1();

        var f2=function(n){
            console.log("arguments= ", arguments);
            console.log("arguments 长度= " + arguments.length)
            console.log(n);
        }
        f2(123,456,789);
    </script>


//3 (1)如果我们的函数有形参,在传入实参的时候,仍然按照顺序匹配
// (2)如果有匹配上,就赋给他, 如果没有匹配上,也无所谓
// (3)仍然会把所有的实参,赋给 arguments
// (4)如果形参个数,大于了实参个数,则该形参的值为 undefined

在这里插入图片描述

7.JS自定义对象

7.1 自定义对象方式1:Object形式

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

<script type="text/javascript">
        var person = new Object();
        console.log("person 类型=" + typeof(person));//object
        //增加一个属性 name
        person.name = "张三";
        //增加一个属性
        person.age = 20;
        //增加一个函数
        person.hi=function(){
            console.log("person 的信息 " + 
            this.name + " " + 
            this.age + " " +
             this.job);
        }
        person.hi();
    </script>

在这里插入图片描述

7.2 自定义对象方式2:{} 形式

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

<script type="text/javascript">
        var person={
            name:"张三",
            age:20,
            hi:function(){
                console.log("person 的信息 " + 
                this.name + " " + 
                this.age + " " +
                this.job);
                }
            }
            person.hi();
    </script>

在这里插入图片描述

8.事件

    1. 事件是电脑输入设备与页面进行交互的响应.
    2. 事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行.

8.1 事件分类

    1.事件的注册(绑定),事件注册(绑定):当事件响应(触发)后要浏览器执行哪些操作代码,叫事件注册或事件绑定

    2.静态注册事件,通过 html 标签的事件属性直接赋于事件响应后的代码,这种方式叫静态注册

    3.动态注册事件,通过 js 代码得到标签的 dom 对象,然后再通过 dom 对象.事件名 = function(){} 这种形式叫动态注册

    动态注册事件步骤
    1. 获取标签<—>dom 对象
    2. dom 对象.事件名 = fucntion(){}

8.2 onload 加载完成

    onload:某个页面或图像被完成加载

//1. 在 js 中,将页面窗口 映射成 window dom 对象
//2. window 对象有很多的函数和属性,可以使用
//3. window.onload 表示页面被加载完毕
//4. 后面的 function (){} 表示加载完毕后,要执行的函数/代码

    页面加载完毕,其他代码执行完毕,最后执行onload

<html>
<head>
    <script>
         window.onload=function()
         {
            alert(1);
         }
    </script>
</head>
<body>
<div id="div">abcd</div>
<script>
       console.log(2);
</script>
</body>
</html>

8.3 onclick 单击事件

    onclick : 鼠标点击某个对象

<html>
<head>
    <script>
         function sayOK(){
            alert("你点击了sayok按钮");
         }


//1. 先拿到 id=btn01 的 button 对应 dom 对象
//2. 通过 dom 对象动态的绑定 onclick 事件
//3. 通过 document 的 getElementById 获取对应的 dom 对象

         window.onload=function(){
            var btn01=document.getElementById("btn01");
            btn01.onclick=function(){
                alert("你点击了sayHi按钮");
            }
         }
    </script>
</head>
<body>
    <button onclick="sayOK()">sayOK 按钮</button>
    <button id="btn01">sayHi 按钮</button>
</body>
</html>

8.4 onblur失去焦点事件

<html>
<head>
    <script>
      function upperCase(){
        var fname=document.getElementById("fname");
        fname.value=fname.value.toUpperCase();
      }

      window.onload=function(){
        var fname2=document.getElementById("fname2");
        fname2.onblur=function(){
            fname2.value=fname2.value.toUpperCase();
        }
      }
    </script>
</head>
<body>
    输入英文单词:
    <input type="text" id="fname" onblur="upperCase()" /><br />
    输入英文单词:
    <input type="text" id="fname2" />
</body>
</html>

在这里插入图片描述

在这里插入图片描述

8.5 onchange 内容发生改变事件

<html>
    <head>
        <script>
            function mySal(){
                alert("工资变化了");
            }
            window.onload=function(){
                var sel01=document.getElementById("sel01");
                sel01.onchange=function(){
                    alert("女友改变了");
                }
                
            }

        </script>
    </head>
<body>
    <select onchange="mySal()">
        <option>--工资范围--</option>
        <option>10k 以下</option>
        <option>10k-30k</option>
        <option>30k 以上</option>
    </select> 
    你当前女友是谁:
    <select id="sel01"> <!-- 动态绑定 onchange-->
    <option>---女友---</option>
    <option>艳红</option>
    <option>春桃</option>
    <option>春花</option>
    </select>
</body>
</html>

在这里插入图片描述

8.6 onsubmit 表单提交事件

<html>
    <head>
        <script>
            //静态注册
           function register(){
             var username=document.getElementById("username");
             var pwd=document.getElementById("pwd");
             if(""==pwd.value || ""==username.value){
                alert("用户名和密码不能为空, 不能提交");
                return false;
             }
            return true;
           }
           //动态注册
           window.onload=function(){
                var form2 =document.getElementById("form2");
                form2.onsubmit=function(){
                    if(form2.username.value=="" || form2.pwd.value==""){
                        alert("用户名和密码不能为空, 不能提交");
                            return false;//不提交
                    }
                }
                return true;
           }
        </script>
    </head>
<body>
    <h1>注册用户 1</h1> <!-- 静态注册表单提交事件 -->
    <form action="t.html" onsubmit="return register()">
    u: <input type="text" id="username" name="username"/><br/>
    p: <input type="password" id="pwd" name="pwd"/><br/>
    <input type="submit" value="注册用户"/>
    </form>
    <h1>注册用户 2</h1> <!-- 动态注册表单提交事件 -->
    <form action="t.html" id="form2">
    u: <input type="text" name="username"/><br/>
    p: <input type="password" name="pwd"/><br/>
    <input type="submit" value="注册用户"/></form>
</body>
</html>

在这里插入图片描述

9.DOM

    DOM 全称是 Document Object Model 文档对象模型,就是把文档中的标签,属性,文本,转换成为对象来管理
在这里插入图片描述

9.1 HTMLDOM

    当网页被加载时,浏览器会创建页面的文档对象模型(Document)
在这里插入图片描述

    document 它管理了所有的 HTML 文档内容
    document 它是一种树结构的文档,有层级关系,在 dom中把所有的标签都对象化

    doucment 对象方法
    通过 document 可以访问所有的标签对象
在这里插入图片描述

9.1.1 getElementById

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
      window.onload=function(){
        var head1=document.getElementById("myHeader");
        head1.onclick=function(){
            alert(myHeader.innerText);
        }
      }
    </script>
</head>
<body>
    <h1 id="myHeader"><div>你好世界</div></h1>
    <p>点击你好世界弹出文本</p>
</body>
</html>

在这里插入图片描述

9.1.2 getElementByName

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
        //全选
        function selectAll(){
            var sport=document.getElementsByName("sport");
            for(var i=0;i<sport.length;i++){
                sport[i].checked=true;
            }
            
        }
        //全不选
        function selectNone(){
            var sport=document.getElementsByName("sport");
            for(var i=0;i<sport.length;i++){
                sport[i].checked=false;
            }
        }
        //反选
        function selectReverse(){
            var sport=document.getElementsByName("sport");
            for(var i=0;i<sport.length;i++){
               sport[i].checked=!sport[i].checked;
            }
        }
        
        

    </script>
</head>
<body>
    <input type="checkbox" name="sport" value="zq" checked="checked">足球
    <input type="checkbox" name="sport" value="tq">台球
    <input type="checkbox" name="sport" value="ppq">乒乓球 <br/><br/>
    <button onclick="selectAll()">全选</button>
    <button onclick="selectNone()">全不选</button>
    <button onclick="selectReverse()">反选</button>
</body>
</html>

在这里插入图片描述

9.1.3 点击出现图片

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>createElement</title>
<script>
    function addImg(){
        var img = document.createElement("img");
        img.src="../../1.jpg";
        img.height = '100';
        document.body.append(img);
    }

</script>
</head>
<body>
<input type="button" onclick="addImg()" value="点击出现图片~"/>
</body>
</html>

在这里插入图片描述

  节点常用属性

  1.childNodes 属性,获取当前节点的所有子节点

  2. firstChild 属性,获取当前节点的第一个子节点

  3. lastChild 属性,获取当前节点的最后一个子节点

  4. parentNode 属性,获取当前节点的父节点

  5. nextSibling 属性,获取当前节点的下一个节点 (后一个)

  6. previousSibling 属性,获取当前节点的上一个节点 (前一个)

  7. className 用于获取或设置标签的 class 属性值

  8. innerHTML 属性,表示获取/设置起始标签和结束标签中的内容

  9.innerText 属性,表示获取/设置起始标签和结束标签中的文本

10.DOM练习

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示 HTML DOM 相关方法</title>
<link rel="stylesheet" type="text/css" href="style/css.css"/>
<script>
    window.onload=function(){

        //查找 id=java 节点
        var btn01=document.getElementById("btn01");
        btn01.onclick=function(){
            var java =document.getElementById("java");
            alert("java 节点文本=" + java.innerText);
        }
       
        //查找所有 option 节点
        var btn02=document.getElementById("btn02");
        btn02.onclick=function(){
            var option =document.getElementsByTagName("option");
            alert(option);
            for(var i=0;i<option.length;i++){
                alert(option[i].innerText);
            }
        }

        //查找 name=sport 的节点
        var btn03=document.getElementById("btn03");
        btn03.onclick=function(){
            var sport=document.getElementsByName("sport");
            for(var i=0;i<sport.length;i++){
                alert(sport[i].value);
            }
        }

        //查找 id=language 下所有 li 节点
        var btn04=document.getElementById("btn04");
        btn04.onclick=function(){
            var language=document.getElementById("language").getElementsByTagName("li");
            for(var i=0;i<language.length;i++){
                alert(language[i].innerText);
            }
        }

        //返回 id=sel01 的所有子节点
        var btn05=document.getElementById("btn05");
        btn05.onclick=function(){
            var childNode=document.getElementById("sel01").childNodes;
            for(var i=0;i<sel01.length;i++){
                if (childNode[i].selected) {
                    alert(i + " " + childNode[i].innerText);
                }
            }
        }

        //返回 id=sel01 的第一个子节点
        var btn06=document.getElementById("btn06");
        btn06.onclick=function(){
            var sel01=document.getElementById("sel01").firstChild;
            alert(sel01.firstChild);
    }
        //返回 id=java 的父节点
        var btn07=document.getElementById("btn07");
        btn07.onclick=function(){
            var java=document.getElementById("java");
            var childNodes = java.parentNode.childNodes;
            for (var i = 0; i < childNodes.length; i++) {
                alert("语言= " + childNodes[i].innerText)
        }
    }
        //id=ct 的前后兄弟节点
        var btn08=document.getElementById("btn08");
        btn08.onclick=function(){
            var ct=document.getElementById("ct");
            alert(ct.previousSibling.innerText);
            alert(ct.previousSibling.previousSibling.innerText);
            alert(ct.nextSibling.innerText);
            alert(ct.nextSibling.nextSibling.innerText);
    }
        //读取 id=ct 的 value 属性值
        var btn09=document.getElementById("btn09");
        btn09.onclick=function(){
            var ct=document.getElementById("ct");
            alert(ct.value);
    }
    //设置#person 的文本域
    var btn10=document.getElementById("btn10");
    btn10.onclick=function(){
        var person1=document.getElementById("person");
        person1.innerText="设置完成";
    }
    }
</script>
</head>
<body>
    <div id="total">
    <div class="inner">
    <P>
    你会的运动项目:
    </P>
    <input type="checkbox" name="sport" value="zq" checked="checked">足球
    <input type="checkbox" name="sport" value="tq">台球
    <input type="checkbox" name="sport" value="ppq">乒乓球 <br/>
    <hr/>
    <P>
    你当前女友是谁:
    </P>
    <select id="sel01">
    <option>---女友---</option>
    <option>红艳</option>
    <option id="ct" value="春桃菇凉">春桃</option>
    <option>春花</option>
    <option>桃红</option>
    </select>
    <hr/>
    <p>
        你的编程语言?
        </p>
        <ul id="language">
        <li id="java">Java</li>
        <li>PHP</li>
        <li>C++</li>
        <li>Python</li>
        </ul>
        <br>
        <br>
        <hr/>
        <p>
        个人介绍:
        </p>
        <textarea name="person" id="person">个人介绍</textarea>
        </div>
        </div>
        <div id="btnList">
            <div>
            <button id="btn01">查找 id=java 节点</button>
            </div>
            <div>
            <button id="btn02">查找所有 option 节点</button>
            </div>
            <div>
            <button id="btn03">查找 name=sport 的节点</button>
            </div>
            <div>
            <button id="btn04">查找 id=language 下所有 li 节点</button>
            </div>
            <div>
            <button id="btn05">返回 id=sel01 的所有子节点</button>
            </div>
            <div>
            <button id="btn06">返回 id=sel01 的第一个子节点</button>
            </div>
            <div>
            <button id="btn07">返回 id=java 的父节点</button>
        </div>
        <div>
        <button id="btn08">返回 id=ct 的前后兄弟节点</button>
        </div>
        <div>
        <button id="btn09">读取 id=ct 的 value 属性值</button>
        </div>
        <div>
        <button id="btn10">设置#person 的文本域</button>
        </div>
        </div>
    </body>
</html>                        

在这里插入图片描述

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

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

相关文章

Go 基础Interface

Go Interface 今天学习下Golang语言中Interface基本语法与使用&#xff0c;通过代码示例了解Go编程中的接口及其实现。跟Java语言类似&#xff0c;在Go编程中&#xff0c;开发者可以使用接口来存储一组没有实现的方法。也就是说&#xff0c;接口的方法不会有方法体。 接口定义…

谷歌正开发苹果AirTag的竞品,但苹果Find My需求强劲

据安卓爆料专家 Mishaal Rahman 的消息&#xff0c;谷歌似乎正在开发苹果 AirTag 的竞品。 从图中可以看到&#xff0c;谷歌 Fast Pair 蓝牙快速配对中&#xff0c;出现了一个名为“Locator tag&#xff08;定位器标签&#xff09;”的分类&#xff0c;这一类别此前没有出现过…

RXXW300/汇川MD500变频器MODBUS通信应用指导手册

本篇博客属于工具文档篇,方便大家查询通信相关的参数和MODBUS地址,有关PLC的MODBUS通信大家可以参看下面的文章链接: PLC MODBUS通信优化、提高通信效率避免权限冲突(程序+算法描述)_RXXW_Dor的博客-CSDN博客_modbus读写冲突MODBUS通讯非常简单、应用也非常广泛,有些老生…

51单片机多路电压检测数码管显示( proteus仿真+程序+报告+讲解视频)

51单片机多路电压检测数码管显示演示视频1.主要功能&#xff1a;2.仿真3. 程序4.设计报告系统需求及方案设计5. 设计资料内容清单51单片机多路电压检测数码管显示( proteus仿真程序报告讲解视频&#xff09;仿真图proteus 7.8及以上 程序编译器&#xff1a;keil 4/keil 5 编程…

MySQL从入门到精通(第二篇):MySQL的底层原理及其结构,结合多篇文章

Mysql进阶一、事务ACIDAUTOCOMMIT二、并发一致性问题1. 修改丢失三、封锁1. 封锁粒度2. 封锁类型读写锁意向锁3. 封锁协议1. 一级封锁协议2. 二级封锁协议3. 三级封锁协议4. 两段锁协议a. 概念b. 例子c. 两段锁是可串行化的充分条件d. 两段锁与死锁四、MySQL系统变量1. 查看系统…

苏嵌实训——day18

文章目录一 wirkeshark 抓包工具1.1 软件介绍1.2 软件安装1.3 wireshark工具的使用1.4 TCP三次握手和四次挥手二 TCP循环服务器2.1 IO多路复用2.2 使用select实现IO多路复用2.3 epoll一 wirkeshark 抓包工具 1.1 软件介绍 wireshark用于抓取经过我当前主机网卡的所有的数据包…

ffmpeg解封、解码实战

1 概述 2 解封装相关函数接口 avformat_alloc_context();负责申请一个AVFormatContext结构的内存,并进行简单初始化 avformat_free_context();释放该结构里的所有东西以及该结构本身 avformat_close_input();关闭解复用器。 avformat_open_input();打开输入视频文件 avformat_…

在elasticsearch中简单的使用script_fields

文章目录1、背景2、准备数据2.1 mapping2.2 插入数据3、案例3.1 格式化性别 1-男 2-女 -1-未知 如果不存在sex字段&#xff0c;则显示-- 其余的显示 **3.1.1 dsl3.1.2 java代码3.1.3 运行结果3.2 判断用户是否有某个爱好3.2.1 dsl3.2.2 java代码3.2.3 运行结果3.3 统计湖北的用…

Oracle 程序被编译后自动增加了AUTHID CURRENT_USER授权

目录 背景 原因&#xff1a; 解决方法 背景 今天遇到一个大坑&#xff0c;新建的一个数据库用户调用apps下的程序包&#xff0c;程序反馈未授权无法使用。 但是DBA确认已经给了授权。 查询授权表也是有正确授权的&#xff0c;但就是显示无效授权。 后来debug进去&#x…

外汇k线图经典图解:穿头破脚

从事外汇、黄金交易怎么能不懂K线图&#xff0c;学看K线图怎么能不把一些经典图解铭记心中呢&#xff1f;它们就好比字典和工具书&#xff0c;当投资者在解读行情时遇到任何困惑&#xff0c;都能从这些经典中得到指引&#xff0c;从而指明自己的投资方向。今天&#xff0c;小编…

java ssm校园二手书交易平台idea

该网站从实际运用的角度出发&#xff0c;运用了计算机网站设计、数据库等相关知识&#xff0c;网络和Mysql数据库设计来实现的&#xff0c;网站主要包括学生注册、学生登录、浏览图书、搜索图书、查看图书并进行购买&#xff0c;对购买的图书进行确认收货、退款退货、查看个人信…

Elasticsearch连续剧之实战篇Java操作es

作者&#xff1a;狮子也疯狂 专栏&#xff1a;《es》 坚持做好每一步&#xff0c;幸运之神自然会驾凌在你的身上 目录一、&#x1f407;前言二、&#x1f407;原生JAVA操作ES_搭建项目Ⅰ、创建项目Ⅱ、索引操作2.1 创建空索引2.2 给索引添加结构2.3 删除索引Ⅲ、文档操作3.1 新…

vCloud删除OVDC网络时提示被vApp网络使用无法删除

环境 VMware Cloud Director 版本:10.3.2.19375051 现象 在vCloud租户视图删除OVDC网络,提示被vApp网络使用,无法删除。此时通过查看vApp发现并没有残留vApp网络。 解决办法 1、登录vCloud数据库: 登录方法可以参考:VMware Cloud Director数据库操作 2、查逻辑网络: …

CAN接口电路设计

CAN总线的全称是控制器局域网络&#xff0c;主要应用在汽车电子和工业控制领域。和485总线一样&#xff0c;CAN总线也是一种半双工的通信。一条CAN总线最多能接110个节点它最高速率能到1Mbps&#xff0c;最远传输距离能到10KMCAN总线有两个信号&#xff0c;一个是CANH&#xff…

如何在 Linux 命令行中优雅的格式化输出 xml,记住这三种方法!

xml&#xff08;可扩展标记语言&#xff09;也是一种人类可读的标记语言&#xff0c;但是如同 json 文件一样&#xff0c;没有缩进格式&#xff08;或者压缩&#xff09;的 xml 文件&#xff0c;读起来那是挺头疼的。 首先来看一下我们这篇文章要达到的目的&#xff0c;如下图…

代码随想录训练营第十七天|110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110.平衡二叉树 看完题后的思路 int[] f(root)if rootnull return [true,0]left[]f(root.left) if(!left[0]){return [false,-1]} right[]f(root.right) if(!right[0]){return [false,-1]} return[true,math.max(left[1],right[1])1] 思路 上面的过程弄复杂了&#xff0c;其…

Elasticsearch 入门到精通-Elasticsearch核心倒排索引数据结构

Elasticsearch 简介Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。Elasticsearch 建立在全文搜索引擎 Apache Lucene™ 基础上&#xff0c;通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤&#xff0c;从而很方便的使大量数据具有搜索、分析和探索…

vue插槽之插槽的用法及作用域插槽详解

目录前言一&#xff0c;插槽的基本使用1.1 引出插槽1.2 插槽的基本使用1.3 默认插槽1.4 插槽样式二&#xff0c;具名插槽2.1 引出具名插槽2.2 具名插槽的使用三&#xff0c;template标签3.1 引出template标签3.2 template标签的使用四&#xff0c;作用域插槽4.1 引出作用域插槽…

C语言小题,有3个学生的信息,放在结构体数组中,要求输出全部学生的信息。(指向结构体数组的指针)

前言&#xff1a; 此篇是针对 指向结构体数组的指针 方面的练习。 解题思路&#xff1a; 用指向结构体变量的指针来处理&#xff1a; &#xff08;1&#xff09;声明结构体类型 struct Student &#xff0c;并定义结构体数组&#xff0c;同时使之初始化&#xff1b; &#xff…

【Rust】9. 常见集合

9.1 Vector 9.1.1 创建 vector vector 只能储存相同类型的值&#xff01;创建空的 vector&#xff1a;Vec::new()创建有值的 vector&#xff1a;vec! 宏 9.1.2 向 vector 中添加元素 9.1.3 读取 vector 的元素 索引语法&#xff1a;当引用一个不存在的元素时 Rust 会造成 pa…