JavaWeb 速通JavaScript

news2024/9/24 11:29:51

目录

一、JavaScript快速入门

        1.基本介绍 : 

        2.JavaScript特点 : 

        3.JavaScript使用方式 : 

                1° 方式一 : 写在

                2° 方式二 : 以外部文件形式引入

                PS : 注意事项

        4.JavaScript查错方式 : 

二、JavaScript数据类型

        1.变量 : 

        2.数据类型 : 

        3.特殊值 : 

三、JavaScript运算符

        1.算术运算符:

        2.关系运算符 : 

        3.赋值运算符 : 

        4.逻辑运算符 : 

        5.三目运算符 : 

四、JavaScript数组

        1.数组的定义 : 

        2.数组的遍历 : 

五、JavaScript函数

        1.简介 : 

        2.定义 : 

                1° 通过function关键字来定义函数 

                2° 通过将函数赋值给变量

        3.注意事项 : 

六、JavaScript对象

        1.对象的定义 :

                1° 方式一 : 通过Object

                2° 方式二 : 通过{} (使用频率更高!)

        2.对象的访问 : 

七、JavaScript事件

        1.基本介绍 : 

        2.常见事件 : 

        3.事件分类 : 

        4.事件演示 : 

                1° onload事件

                2° onclick事件

                3° onblur事件

                4° onchange事件

                5° onsubmit事件⭐⭐⭐

八、JavaScript总结


一、JavaScript快速入门

        1.基本介绍 : 

        JavaScript 能改变 HTML 的内容和属性,能改变 HTML 的样式 (CSS),能完成页面的数据验证;JavaScript用于控制网页的行为

        JavaScript简称JS, 需要运行浏览器来解析执行 JavaScript 代码

        关于JS代码——

        (1)JavaScript代码写在<script></script>标签中。
        (2)在<script>标签中要添加属性type="text/javascript"。
        (3)javascript语句可不写分号(建议写上)

        2.JavaScript特点 : 

        1.JavaScript 是一种解释型的脚本语言。C、C++等语言是先编译后执行,而 JavaScript 是在程序的运行过程中由解释器逐行进行解释。

        PS : 

        解释性语言——JavaScript, Java, PHP等。

        编译性语言——C/C++。

        区别——解释性语言编译后的代码,不能直接被机器执行,需要解释器来执行编译性语言编译后的代码,可以直接被机器执行
        2.JavaScript 是一种基于对象的脚本语言,可以创建对象,也能使用现有的对象(有对象)。
        3.JavaScript 是弱类型的,对变量的数据类型不做严格的要求,变量的数据类型在运行过程可以变化(对语法的约束性弱)。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>first javascript</title>
    <script type="text/javascript">
        var name_EX = "Cyan";                   //var用于定义一个变量
        console.log("name_EX = " + name_EX);    //表示在控制台输出name变量的值
        console.log(typeof name_EX);            //表示在控制台输出name变量的类型

        name_EX = 100;                          //改变name变量的类型(弱类型)
        console.log("name_EX = " + name_EX);
        console.log(typeof name_EX);
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 

        3.JavaScript使用方式 : 

                1° 方式一 : 写在<script>标签中

        可以在<head>或者<body>中嵌入<script></script>标签;(建议在<head></head>标签下);执行顺序是从上到下。 

                2° 方式二 : 以外部文件形式引入

        在<script></script>标签中直接添加type属性和src属性。type="text/javascript"指明导入的是javascript脚本文件;src属性指明.js文件的路径。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>use by introducing outer file</title>
    <script type="text/javascript" src="../../../js/demo.js"></script>
</head>
<body>
</body>
</html>

                .js外部文件如下 : 

var v1 = "RA9";
console.log("v1 = " + v1);
console.log(typeof v1);

v1 = 233;
console.log("v1 = " + v1);
console.log(typeof v1);

                运行结果 : 

                PS : 注意事项

        两种使用 js 的方式(script标签嵌入script标签引入),是二选一,不能混用。

        同时使用虽然不会报错,但只有前面引入的js文件生效

        4.JavaScript查错方式 : 

                以Google Browser为例,在html页面,进入开发者工具(Ctrl + Shift + i),在控制台(Console)界面可以找到出错代码所在的位置(行数)如下图所示 : 

                 若想直接定位到错误位置的源码,可以点击右侧的error如下图所示 : 

                定位源码,如下图所示 : 


二、JavaScript数据类型

        1.变量 : 

        变量是用于存储信息的"容器"。JavaScript 变量可用于存放值(比如 x=5)和表达式(比如 z=x+y)JS变量对大小写敏感

                内存指浏览器的内核空间。变量指向某一个内存空间
                如下图所示 :  

        2.数据类型 : 

        常用数据类型如下——
        数值类型: number
        PS : 联系Java的包装类——除了Character类和Boolean类外,其他六大包装类都继承自Number类。

        字符串类型: string(包含单个字符和字符串)

        PS : string字符串既可以用双引号括起来,也可以单引号括起来,并且允许空字符串""
        布尔类型: boolean(true,false)
        对象类型: object
        函数类型: function(方法)

        3.特殊值 : 

        undefined : 使用未初始化的变量,默认 undefined
        null : 空值
        NaN(Not a Number) : 非数值

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>special value</title>
    <script type="text/javascript">
        var v1;
        console.log("v1 = " + v1);
        console.log(typeof v1);

        var v2 = null;
        console.log("v2 = " + v2);
        console.log(typeof v2);

        var v3 = 5 * 'Cyan';
        console.log("v3 = " + v3);
        console.log(typeof v3);
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 


三、JavaScript运算符

        1.算术运算符:

        算术运算符用于执行变量与/或值之间的算术运算。

        JavaScript中算术运算符的使用与Java几无二致

        2.关系运算符 : 

        关系(比较) 运算符在逻辑语句中使用,以测定变量或值是否相等

        JS的关系运算符与Java几无二致,特殊的地方在于——
        === : 全等(类型和值都要求相等)

        == : 相等(仅要求字面值的相等)

        3.赋值运算符 : 

        赋值运算符用于给 JavaScript 变量赋值。

        JS中赋值运算符的使用与Java几无二致。 

        4.逻辑运算符 : 

        逻辑运算符用于测定变量或值之间的逻辑

        JS逻辑运算符的使用与Java几无二致,特殊的地方在于——

        在JavaScript语言中,所有的变量,都可以作为一个 boolean 类型的变量去使用
        0 、null、 undefined、""(空串)、NaN都认为是 false

        JS逻辑运算符也遵循“短路与”和“短路或”的机制

        PS : 短路与全真时,返回最后一个表达式的值;短路或全假时,返回最后一个表达式的值。注意,当返回的表达式是一个有具体值的变量,会返回该表达式的值

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>operator</title>
    <script type="text/javascript">
        var b1 = "233.333";
        if (b1) {
            console.log("This is true!");         //alert表示弹窗的意思
        }

        var b2 = NaN;
        if (!b2) {
            console.log("NaN boil down to false");
        }

        var i = 11;
        var b3 = "800" || i++;
        console.log("b3 = " + b3  + ", i = " + i);

        var b4 = 1.55 && 100 + 2;
        console.log("b4 = " + b4);
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 

        5.三目运算符 : 

        JS也支持三目运算符,使用规则与Java相同。        

        仍然需要注意的是,在JavaScript语言中,所有的变量都可以作为一个Boolean类型的变量去使用,因此,三目运算符的返回结果可以是一个具体的值(表达式的值)。


四、JavaScript数组

        1.数组的定义 : 

        JS中,同一个数组允许有不同数据类型的元素(弱类型语言)

        若想访问数组中某一个确定的元素,通过下标来访问

        数组定义方式1 : 

        var fruit = ["apple", "grape", "watermelon"];

        PS : 方式1也支持空数组。eg : var fruit = [];

        数组定义方式2 : 

        var fruit2 = new Array("apple", "grape", "watermelon");

        PS : 方式2也支持空数组。eg : var fruit2 = new Array();

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>array definition</title>
    <script type="text/javascript">
        var fruit = ["apple", "grape", "watermelon"];
        console.log("fruit = "  + fruit);
        console.log("fruit[2] = " + fruit[2]);
        var fruit_ = [];
        fruit_[0] = 3;          //相当于扩容。
        fruit_[4] = 11;         //被跳过的元素自动为undefined
        console.log("fruit_ = " + fruit_);
        console.log("fruit_[2] = " + fruit_[2]);
        console.log("---------------------------------");

        var fruit2 = new Array("pineapple", "strawberry", "blueberry");
        console.log("fruit2 = " + fruit2);
        console.log("fruit2[1] = " + fruit2[1]);
        //var fruit2_ = new Array();
        //like above
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 

        2.数组的遍历 : 

        先通过数组.length来获取数组的长度,然后再通过for循环来遍历数组。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>traverse the array</title>
    <script type="text/javascript">
        var animals = [11, 233.333, "Cyan", true];
        animals[1] = 5;     //可以达到替换的效果。(JS中的数组兼具Java中数组和集合的特点)

        for (i = 0; i < animals.length; ++i) {
            console.log("animals[" + i + "] = " + animals[i]);    //log会自动换行。
        }
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 


五、JavaScript函数

        1.简介 : 

        函数是由事件驱动的,或者当它被调用时,执行的可重复使用的代码块。

        2.定义 : 

                1° 通过function关键字来定义函数 

        基本语法格式如下 : 
        function 函数名(形参列表) { 

                //函数体(方法体)

                return语句;

        }

                代码演示 :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>The way to define function No.1</title>
    <script type="text/javascript">
        /*
            函数只有在被调用时才会执行。
         */
        function f1() {
            console.log("This is f1()");
        }
        f1();

        function f2(t1, t2) {
            console.log("t1 = " + t1 + ", t2 = " + t2);
        }
        f2(11, 5);

        function f3() {
            return "haha";
        }
        console.log("f3() = " + f3());

        function f4(name) {
            return "Cyan" + name;
        }
        console.log("f4() = " + f4("RA9"));
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 

                2° 通过将函数赋值给变量

        基本语法格式如下 : 
        var 函数名 = function  (形参列表) { 

                //函数体(方法体)

                return语句;

        }

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>define function in way 2</title>
    <script type="text/javascript">
        var ff1 = function () {
            return "haha";
        }
        console.log("ff1 = " + ff1());

        var ff2 = ff1;
        console.log("ff2 = " + ff2());
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 

        3.注意事项 : 

         JS 中不允许函数的重载,“重载”会覆盖掉上一次函数的定义。
         关于函数的 arguments 隐形参数(作用域在 function 函数内)——
                (1) 隐形参数: 在 function 函数中不需要定义,可以直接用来获取所有的实参
                (2) 隐形参数在使用上类似Java的可变参数,但是arguments允许多类型.(

         关于函数形参个数和实参个数不匹配的问题 ——

                (1)实参按照顺序一一匹配形参;
                (2)不管传入多少实参,统统都可以在arguments隐形参数中找到。
                (3)当实参个数多于形参个数,按顺序匹配形参,多余的实参无效当实参个数少于形参个数,未初始化的形参 = undefined

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>some details about JS's function</title>
    <script type="text/javascript">
        function f1() {
            console.log("I'm non-parameter f1.");
        }
        function f1(name) {
            console.log("I'm parameter's f1");
            console.log("name = " + name);
        }
        f1();   //被覆盖,无参,实际却调用了有参。
        console.log("===========================================================");

        var f2 = function (a,b,c) {
            console.log("I'm f2");
            console.log("arguments = ", arguments);     //如果想输入对象的详细数据,中间用,隔开
            console.log("b = " + arguments[1]);
            console.log("arguments' length = " + arguments.length);
        }
        f2(5,11,24,23,2);
        f2(11);
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 


六、JavaScript对象

        1.对象的定义 :

                1° 方式一 : 通过Object

        var 对象名 = new Object();                         // 对象实例(空对象)

        对象名.属性名 = 值;                                    // 定义一个属性
        对象名.函数名 = function(){}                       // 定义一个函数

        PS : JS和Java创建对象的区别——

                Java是先确定对象有什么,再去创建对象;而JavaScript是先创建对象,再去决定给对象添加什么内容。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>define object in way.1</title>
    <script type="text/javascript">
        var stu = new Object();     //"built-in" 内置对象
        console.log("stu's type = " + typeof(stu));

        stu.name = "Cyan";
        stu.age = "21";
        stu.sex = "male";
        stu.score = "420";

        stu.info = function () {
            console.log("name = " + this.name + ", age = " + this.age + ", sex = "
                + this.sex + ", score = " +  this.score);
        }
        stu.info();

        //变量提升 (undefined)
        stu.unknown = function () {
            console.log("hobby = " + this.hobby + ", advantage = " + this.advantage);
        }
        stu.unknown();
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 

                2° 方式二 : 通过{} (使用频率更高!

        Δ注意冒号:逗号,的使用!!!

        var 对象名 = {
                属性名:值,                 // 定义属性
                属性名:值,                 // 定义属性
                函数名:function () {} // 定义函数
        }

        PS : 除最后一个定义外,其他定义语句后必须加逗号

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Object definition No.2</title>
    <script type="text/javascript">
        var employee = {
            id: 1,
            name: "Cyan_RA9",
            sex: "male",
            score: 420,

            info: function () {
                console.log("id = " + this.id + ", name = " + this.name + ", sex = " + 
                    this.sex + ", score = " + this.score);
            },
            hobby: function (hobby) {
                return "I relish playing " + hobby;
            }
        }
        
        employee.info();
        console.log(employee.hobby("basketball"));
    </script>
</head>
<body>
</body>
</html>

                运行结果 : 

        2.对象的访问 : 

        访问对象属性——

                对象.属性;

        访问对象行为——

                对象.函数名();


七、JavaScript事件

        1.基本介绍 : 

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

        2.常见事件 : 

        3.事件分类 : 

        事件注册(绑定):
        当事件响应(触发)后要浏览器执行哪些操作代码,叫事件注册或事件绑定
         静态注册事件 :
        通过 html 标签的事件属性 直接赋予事件响应后的代码,这种方式叫静态注册。(用的不多)
        2° 动态注册事件:
        通过JS代码得到标签对应的 dom 对象,然后再通过 dom 对象.事件名 = function(){} 来反控标签的行为,这种形式叫动态注册
        PS:动态注册事件步骤——
                1. 获取标签对应的dom对象。
                2. dom对象.事件名 = fucntion () {}, 通过dom对象来反控标签行为。

        4.事件演示 : 

                1° onload事件

        onload : 某个页面或图像已经被加载完毕时,触发onload事件。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onload test</title>
    <script type="text/javascript">
        //静态注册 : onload="staticTest()"
        function staticTest() {
            alert("This is static register");
        }

        //动态注册
        /*
            (1)JS中,将页面窗口映射成了window对象;可以使用window对象的函数和属性
            (2)window.onload表示页面被加载完毕
            (3)当页面被加载完毕后,执行function中的代码
         */
        window.onload = function () {
            alert("This is dynamic register...");
        }
    </script>
</head>
<body>
    Cyan_RA9 <br/><br/>
    <input type="text" value="test"/> <br/><br/>
    <textarea style="width: 300px">
        Please input your content:
    </textarea>
</body>
</html>

                运行效果 : 

                2° onclick事件

        onclick : 鼠标点击某个对象时触发该事件。

                代码演示 :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onclick event test</title>
    <script type="text/javascript">
        //静态注册
        var staticMod = function () {
            alert("Cyan_RA9");
        }

        //动态注册
        /*
            (1)先在要获取DOM对象的HTML元素中添加id属性,进行标识
            (2)利用documentDOM对象的getElementById方法,根据指定的id,来获取HTML元素对应的dom对象
            (3)通过获取的dom对象动态地绑定onclick事件
            (4)若页面未加载完毕就获取页面元素的dom对象,结果为null;因此要配合onload事件,确保成功获取dom对象
            PS : document的范围是页面的主体显示内容。
         */
        window.onload = function () {
            var Button01 = document.getElementById("Button01");
            Button01.onclick = function () {
                alert("Kyrie Irving");
            }
        }
    </script>
</head>
<body>
    <button onclick="staticMod()">点我点我</button>
    <button id = "Button01">别点它,点我</button>
</body>
</html>

                运行效果:(如下GIF图)

                3° onblur事件

        onblur : 元素失去焦点。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onblur event test</title>
    <style>
        table {
            border: 3px cornflowerblue solid;
            background-color: pink;
        }
    </style>
    <script type="text/javascript">
        //静态注册
        function upperCase() {
            var input_1 = document.getElementById("input_1");
            input_1.value = input_1.value.toUpperCase();        //用大写后的值覆盖掉原来的值
        }

        //动态注册
        window.onload = function () {
            var input_2 = document.getElementById("input_2");
            input_2.onblur = function () {
                input_2.value = input_2.value.toUpperCase();    //用大写后的值覆盖掉原来的值
            }
        }
    </script>
</head>
<body>
    <table>
        <tr>
            <td>Username:</td>
            <td><input type="text" name="test1" id="input_1" onblur="upperCase()"/></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="text" name="test2" id="input_2"/></td>
        </tr>
    </table>
</body>
</html>

                运行效果:(如下GIF图)

                4° onchange事件

        onchange 内容发生改变事件。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>on change test</title>
    <style>
        table,tr,td {
            border: 3px cornflowerblue solid;
            background-color: pink;
        }
    </style>
    <script type="text/javascript">
        var changeInfo = function () {
            alert("你的成绩水平发生了变化~");
        }

        window.onload = function () {
            var sel_2 = document.getElementById("sel_2");
            sel_2.onchange = function () {
                alert("你的健康状况发生了变化~");
            }
        }
    </script>
</head>
<body>
    <table>
        <tr>
            <td>你当前的成绩水平:</td>
            <td><select id="sel_1" onchange="changeInfo()">
                    <option>---成绩---</option>
                    <option>优</option>
                    <option>良</option>
                    <option>差</option>
                </select></td>
        </tr>
        <tr>
            <td>你当前的健康水平:</td>
            <td><select id="sel_2">
                <option>---健康状况---</option>
                <option>牛逼</option>
                <option>害⭐</option>
                <option>飞舞</option>
                </select></td>
        </tr>
    </table>
</body>
</html>

                运行效果 : (如下GIF图)

                5° onsubmit事件⭐⭐⭐

        onsubmit : 注册按钮被点击, 提交表单。

                代码演示 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onsubmit test</title>
    <style type="text/css">
        table,tr,td {
            border:2px cornflowerblue solid;
            border-collapse:collapse;
            padding: 10px;
        }
        #td_1,#td_2 {
            text-align: center;
        }
    </style>
    <script type="text/javascript">
        function register() {
            var username = document.getElementById("username");
            var pwd = document.getElementById("pwd");

            if ("" == username.value || "" == pwd.value) {
                alert("Failed to submit --- username or password can't be empty!");
                return false;   //表示不提交
            }
            return true;    //表示提交
        }

        window.onload = function () {
            var form2 = document.getElementById("form2");
            //onsubmit绑定的函数,会直接将结果(True | false)返回给onsubmit
            form2.onsubmit = function () {
                if ("" == form2.username.value || "" == form2.pwd.value) {
                    alert("Failed to submit --- username or password can't be empty!");
                    return false;
                }
                return true;
            }
        }
    </script>
</head>
<body>
<!--注意:onsubmit事件,必须要有return将事件的结果返回给onsubmit-->
<form action="ok.html" method="get" onsubmit="return register()">    <!-- 默认是get请求的提交方式 -->
    <table>
        <tr>
            <td colspan="2" id="td_1">用户登录1</td>
        </tr>
        <tr>
            <td>UserName: </td>
            <td><input type="text" name="username" id = "username"/></td>
        </tr>
        <tr>
            <td>Password: </td>
            <td><input type="password" name="pwd" id = "pwd"/></td>
        </tr>
        <tr>
            <td><input type="submit" value="submit"/></td>
            <td><input type="reset" value="reset"/></td>
        </tr>
    </table>
</form> <br/>
<form action="ok.html" method="get" id="form2">
    <table>
        <tr>
            <td colspan="2" id="td_2">用户登录2</td>
        </tr>
        <tr>
            <td>UserName: </td>
            <td><input type="text" name="username"/></td>
        </tr>
        <tr>
            <td>Password: </td>
            <td><input type="password" name="pwd"/></td>
        </tr>
        <tr>
            <td><input type="submit" value="submit"/></td>
            <td><input type="reset" value="reset"/></td>
        </tr>
    </table>
</form>
</body>
</html>

                ok.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>When you log in successfully</title>
    <style>
        span {
            font-weight: bold;
            font-family: consolas;
            font-size: 20px;
        }
    </style>
</head>
<body>
    <span>You did it, MAN!</span>
</body>
</html>

                运行效果:(如下GIF图)


八、JavaScript总结

        首先需要记住JavaScript这门语言的特点(尤其是弱类型的特点);

        其次是JS常见的几种数据类型;以及数组的两种定义方式;函数的两种定义方式;对象的两种定义方式;事件的分类,动态注册事件的步骤,一些常见事件的使用(尤其是onsubmit事件)。

        以上都应该掌握。

        System.out.println("END---------------------------------------------------------------------------------");

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

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

相关文章

解决forest低版本请求不安全的网站出现SSL认证不通过问题

文章目录 前言解决问题的步骤1、当然是百度2、官网3、看源码4、GPT5、直接去gitee上看源代码的问题 解决一解决二 前言 先说结论&#xff1a;无法解决 那既然无法解决&#xff0c;为啥还要写这样一篇文章呢&#xff0c;是因为这个问题我弄了一天多&#xff0c;我觉得有必要记…

SpringBoot开启子线程执行任务

目录 一、EnableAsync 二、Async 三、测试 一、EnableAsync 二、Async Service public class IotLocationServiceImpl {Asyncpublic void testA() {try {// 模拟阻塞Thread.sleep(5000);System.out.println("子线程执行完毕");} catch (InterruptedException e) {…

WPS Office AI实战:智能表格化身智能助理

前面我们已经拿 WPS AI 对Word文字、PPT幻灯片、PDF 做了开箱体验&#xff0c;还没有看过的小伙伴&#xff0c;请翻看以前的文章&#xff0c;本文开始对【智能表格】进行AI开箱测验。 表格在日常的数据处理中占绝对地位&#xff0c;但表格处理并不是每一个人都擅长&#xff0c;…

《向量数据库指南》——Milvus 中的向量索引概览和平面索引

目录 Milvus 中的向量索引 索引概览 平面索引 在之前的教程中,我们简单介绍了单词 Embedding 示例,了解了 Embedding 的强大,以及如何在向量数据库中进行向量存储和索引。此外,我们也简单介绍了最近邻搜索算法,这个问题涉及根据所选距离度量找到距离查询向量最接近的向…

spring boot+MySQL智慧食堂”设计与实现(包论文)

“智慧食堂”系统运用springboot框架开发&#xff0c;MIS的总体思想&#xff0c;以及MYSQL等技术的支持下共同完成了该系统的开发&#xff0c;实现了“智慧食堂”系统管理的信息化&#xff0c;使用户体验到更优秀的“智慧食堂”管理系统&#xff0c;管理员管理操作将更加方便&a…

青岛大学_王卓老师【数据结构与算法】Week05_01_栈和队列的定义和特点1_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

常用排序,快速排序,归并排序算法讲解

文章目录 快速排序归并排序 排序有很多种算法&#xff0c;常听的十大排序有&#xff1a;冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、希尔排序、计数排序、基数排序、桶排序。 这里只介绍两个常用的算法。 排序&#xff1a; 快速排序归并排序 你可能想知道…

python安装cartopy

1.安装cartopy 创建新环境&#xff1a;https://www.machinelearningplus.com/deployment/conda-create-environment-and-everything-you-need-to-know-to-manage-conda-virtual-environment/ conda create --name mlenv python3.7.5 激活环境后&#xff0c;安装cartopy包&#…

IDEA+springboot+mybatis+shiro+bootstrap+Mysql网上书店管理系统源码

IDEAspringbootmybatisshirobootstrapMysql网上书店管理系统 一、系统介绍1.环境配置 二、系统展示1. 首页2.图书详情3.登录4. 注册5. 购物车6. 个人信息7.我的订单8.填写订单9.用户管理10.添加用户11.店铺列表12.添加店铺13.角色列表14.添加角色15.权限管理16.店铺信息17.我的…

十、SkyWalking链路追踪

解决什么问题&#xff1f; 串联整个调用链路&#xff0c;快速定位问题。缕清服务之间的依赖关系。对各个微服务接口的进行性能分析。跟踪整个业务流程的调用处理顺序。 一、skywalking介绍 1、skywalking是什么&#xff1f; skywalking是一个国产开源框架&#xff0c;2015年…

wordpress 单页中子页面列表制作方法

一、目标&#xff1a; 1、父页面显示所有子页面&#xff0c;如果是子页面就显示子页面对应父页面下的所有子页面。 2、选中的子页面链接显示不一样的样式。 二、代码 <?php$current_page_id get_the_ID(); // 获取当前页面的ID// 判断当前页面是否为父页面$is_parent_…

[数据结构 -- 手撕排序第三篇] 冒泡排序

目录 1、常见的排序算法 1.1 交换排序基本思想 2、冒泡排序的实现 2.1 基本思想 2.2 单趟排序 2.2.1 单趟排序分析 2.2.2 单趟排序实现代码 3、冒泡排序完整代码实现 3.1 思路分析 3.2 代码实现 4、时间复杂度 5、优化算法 5.1 优化算法思路 5.2 优化算法代码实现…

【Linux网络】网络基础(一)

Linux网络基础 1 网络背景1.1 网络发展1.2 局域网和广域网 2 认识“协议”2.1 网络协议分层&#xff08;高内聚&#xff0c;低耦合思想&#xff09;2.1.1 高内聚&#xff0c;低耦合简单理解2.1.2 协议分层的简单例子 3 OSI七层模型3.1 TCP/IP五层&#xff08;或四层&#xff09…

前端LayUI框架快速上手实现登入注册

目录 一、Layui简介 1. 什么是LayUI 2. LayUI的特点 二、LayUI入门 1. LayUI下载 2. LayUI入门使用 1. 在web项目中导入LayUI文件中的layui文件 2. 在JSP页面引入css、js文件 3. 制作一个简单的猜字游戏 4.效果展示 三、Layui实现简单登入功能 环境搭建 一、Layui简…

spring boot+MySQL实现班级综合测评管理系统

随着电子技术的普及和快速发展&#xff0c;线上管理系统被广泛的使用&#xff0c;有很多事业单位和商业机构都在实现电子信息化管理&#xff0c;班级综合测评管理也不例外&#xff0c;由比较传统的人工管理转向了电子化、信息化、系统化的管理。 传统的班级综合测评管理系统&am…

运维工具的学习(1)--Curl

1.1 curl简介 ​Curl是一个非常实用的、用来与服务器之间传输数据的工具&#xff1b;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP)&#xff0c;curl设计为无用…

Kafka入门,offset的默认维护位置(二十一)

offset的默认维护位置 0.9版本之前&#xff1a;consumer默认将offset保持在zookeeper中 从0.9版本开始&#xff0c;consumer默认将offset保存在kafka一个内置的topic中&#xff0c;该topic为__consumer_offsets __consumer_offsets 主题里面采用key和value方式存储数据&#x…

【谷粒学院】NUXT框架

一、服务端渲染技术NUXT 1、什么是服务端渲染 服务端渲染又称SSR (Server Side Render)是在服务端完成页面的内容&#xff0c;而不是在客户端通过AJAX获取数据。 服务器端渲染(SSR)的优势主要在于&#xff1a;更好的 SEO&#xff0c;由于搜索引擎爬虫抓取工具可以直接查看完全…

【分布式应用】ELK 企业级日志分析系统

目录 一、ELK概述1.1、ELK 简介1.2 为什么要使用 ELK1.3完整日志系统基本特征1.4 ELK 的工作原理 二、ELK Elasticsearch 集群部署2.1环境准备2.2&#xff0e;部署 Elasticsearch 软件2.3安装 Elasticsearch-head 插件&#xff08;1&#xff09;编译安装 node&#xff08;2&…

任务六:LTE-Advanced 关键技术

LTE-Advanced 关键技术 一、载波聚合&#xff08;Carrier aggregation&#xff0c;CA&#xff09;二、多天线增强&#xff08;Enhanced Multiple Antenna Transmission&#xff09;1、上行多天线增强2、下行多天线增强。 三、协作多点传输&#xff08;Coordinated Multiple Poi…