js基础学习

news2025/4/8 21:07:44

1、js概述

js是javascript的简称,作用是实现页面和用户的交互
js由浏览器解析运行,不需要编译
js由es基础语法,bom浏览器相关,dom文档操作相关 三大部分组成

2、html引入js

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>01-HTML引入JS</title>

    <style type="text/css">

    </style>
</head>
<body>
<!--
    js 需要引入到html中, 浏览器加载的时候会自动解释运行

    #js引入到html中的两种方式
        1. 内部引入
            a. 在html中写一个script标签 (type="text/javascript" 可以省略)
            b. 然后在script标签内编写js代码
            c. script标签可以放在html中任意位置(推荐放在body内底部)

        2. 外部引入
            a.在html外部编写一个js文件
            b. 然后通过script标签的src属性引入

      注意: 一个script标签只能使用一种引入方式


-->
<script type="text/javascript">
   alert("hello world");
</script>

<script src="js/my.js">
    /*这样写没效果*/
    /*alert("2333333~") */
</script>
</body>
</html>

小结:

1. <script>标签可以用在任何位置,建议写在<body>下面
2.一个<script>标签只能使用一种引入方式

3、变量声明

js是弱类型语言,不注重变量的定义,所以在js中定义变量的类型方式如下:

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

</body>
<script>


    /**
     *
     *  es5:
     *      var(声明任意类型的变量)
     *
     *  es6:
     *      let(和var用法一样,只不过引入作用域的概念)
     *      const :声明常量
     *
     *  typeof(变量)  查看变量的类型
     */

   /* var a ;

    a=1;
    a = "abc";

    alert(typeof (a));*/

/*
    let a ;

    a=1;
    a = "abc";

    alert(typeof (a));*/

//let和var的区别

    // for(let i=0;i<10;i++){
    //     console.log(i);
    // }
    //
    // alert(i);

    //常量不可更改
    const a = 10;
    //a= 11;

</script>
</html>

小结:

1.js中使用let 和 var声明变量,const声明常量
2.let/const报错,是因为js版本需要换成es6的版本

4、js的数据类型

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


</body>
<script>

    /*

         java 8大基本类型
            byte short int long float double  char  boolean


        js 数据类型
          1. string
              字符串: 可以是单引,也可是双引
          2. number
              数字型: 整数, 小数
          3. boolean
              布尔型: true/false
          4. undefined
              未定义 (只声明,不赋值)
          5.对象类型
                Object

       */

        let abc = "hello";
        console.log(typeof(abc));

        abc=123.2;
        console.log(typeof(abc));

        abc=true;
        console.log(typeof(abc));

        abc=undefined;
        console.log(typeof(abc));

        abc=null;
        console.log(typeof(abc));

        abc=new Date();
        console.log(typeof(abc));


</script>
</html>

在这里插入图片描述
小结:

1.js中let关键字声明的变量可以接受任意数据类型
2.js中不严格校验数据类型,因为js是弱数据类型的语言

5、js中的运算

1. 算数运算符
        + - * / % ++ --
2. 赋值运算符
        = += -= *= /= %=
        eg. a+=1 -> a= a+1 
3. 比较运算符
        >   <     ==(===恒等于)     !=(!==不恒等于)
4. 逻辑运算符
        && ||  !(非)
5. 三元(目)运算符
        条件表达式?为真:为假
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>


    /*
        注意:
        1.js中的==只比较值的大小,不比较数据类型

     */

    let abc = "123";
    let num = 123;
    console.log(abc==num);


    /**
     *  2js中任意的非null,非undefined,非零可以理解成true
     */
    if(abc){
        console.log("条件为真");
    }


    /**
     * 3.js中任意数值都可以参与逻辑运算
             左边为真,值看右边。
             左边为假,值看左边。
     */
    console.log(abc&&num);
    console.log(0&&num);

</script>
</html>

小结:

 1.js中的==只比较值的大小,不比较数据类型
 2.js中任意的非null,非undefined,非零可以理解成true
 3.js中任意数值都可以参与逻辑运算

6、js中的流程控制

if条件判断:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>02-条件判断</title>

</head>
<body>

    <script>
        /*
            var : es6之前的变量声明 后来被es6的 let/const替代
                es6(所有主流浏览器都支持)

        *   java中判断条件是 结果为boolean的表达式
        *       js跟java不同的是: 任意类型都能当成判断条件
        *
        *       1. string -> 空串为false,非空串true
        *       2. number -> 非0为true,0为false
        *       3. boolean
        *       4. null  -> false
        *       5. undefined -> false
        * */
        let result
        if(result){
            console.log(true)
        }else{
            console.log(false)
        }
    </script>
</body>
</html>

for循环:

1. 普通for循环
        for(let i= 0; i<10; i++){
            需要执行的代码;
        }

2. 增强for循环
        for(let element of array){
            需要执行的代码;
        }

3. 索引for循环
        for(let index in array){
            需要执行的代码;
        }
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>03-循环语句</title>

</head>
<body>

<script>
    /*
    * 1. 普通for循环
        for(let i= 0; i<10; i++){
            需要执行的代码;
        }

    2. 增强for循环(for of)
            for(let obj of array){
                需要执行的代码;
            }

    3. 索引for循环(for in) -> 了解
            for(let index in array){
                需要执行的代码;
            }
    * */
        /*
        *   java 数组:
        *       String[] array = {"张三","李四","王五"}
        *   js 数组:
        *       let array = ['张三','李四','王五']
        *
        * */
    let array = ['张三','李四','王五']
    for(let i= 0; i<array.length; i++){
        console.log(array[i])
    }
    for(let element of array){
        console.log(element); // 数组中的每个元素
    }

    for(let index in array){
        console.log(index); // 数组中的每个元素索引
    }

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

小结:

注意:
1.js中if条件判断可以是任意值。
    任何非零,非null,非undefined理解成true,反之为false
2.for循环中,let关键字声明变量    

7、js中的函数

1.普通函数

语法:

function 函数名(参数列表){
    函数体;
    [return 返回值;] // 中括号意思表示内容可以省略....
}

代码:

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

</body>
<script>

    /*

            function 函数名(参数列表){
                函数体;
                [return 返回值;] // 中括号意思表示内容可以省略....
            }


           注意:
            1.函数必须要被调用才能执行。
            2.js中函数如果需要返回值,直接return即可。
            3.js中的函数需要传递参数,直接写变量名即可。
            4.js中不存在函数的重载。只要函数名一致,后面的会覆盖前面的。
            5.js中函数的调用只要名字一致即可。在js中,有个隐藏对象,arguments存在了函数的所有参数

     */
    function demo() {
        console.log("success");
    }

    //demo();

    function  demo2() {
        return 123;
    }

    // let num = demo2();
    // console.log(num);


    function demo3(a,b) {
        console.log(a+b);
    }

    //demo3(1,2);
    function demo3() {
        console.log("这是demo3");
    }

    //demo3(1,2);


    function demo5() {
        for(let param of arguments){
            console.log(param);
        }
    }
    demo5(1,2,3,"a");
</script>
</html>

小结:

1.函数的参数直接写变量名
2.函数如果有返回值,直接写return,不需要声明返回值的类型
3.js中函数不存在重载,只需要函数名一致,就可以调用,无论参数列表
4.js函数中有默认变量,arguments,用来接收函数的所有参数。

2.匿名函数

语法:

function (参数列表){
    函数体;
    [return 返回值;] // 中括号意思表示内容可以省略....
}

代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>05-匿名函数</title>

</head>
<body>
    <script>
        /*
        * js中的函数格式有两种
        *   1. 普通函数
        *       function 函数名(参数列表){
        *           函数体
        *       }
        *   2. 匿名函数
        *      变量 = function(参数列表){
        *           函数体
        *      }
        *
        *      a. 匿名函数没有函数名
        *      b. 匿名函数必须给变量赋值
        *
        *    补充:
        *       1. 在js,函数是一种特殊的变量类型(对象)!!!
        *       2. 匿名函数一般是用来注册事件
        * */
        function method01(a,b) {
            document.write(a + b + "哈哈")
        }
        method01(1,2)
        document.write("<br>")

        let method02 = function (a,b) {
            document.write(a + b + "呵呵")
        }
        method02(1,5)
        document.write("<br>")
        document.write(typeof method02)
        document.write("<br>")
    </script>
</body>
</html>

小结:

js中的匿名函数一般都是结合js中的事件一起使用的

8、js中的事件

1.常用事件

场景说明:

 用户输入完用户名,离开输入框的时候,提示不合法。
    这是当用户触发了某个动作的时候,js就会执行相应的功能。这就是事件

在这里插入图片描述
小结:

事件(event):JS可以监听用户的行为叫做事件
事件的作用:给事件绑定函数,事件触发的时候,调用函数,执行函数的功能。

常见事件:

1. 点击事件:
        1. onclick:单击事件
        2. ondblclick:双击事件 (double: 时间间隔很短两次单击)

2. 焦点事件
        1. onblur:失去焦点
        2. onfocus:元素获得焦点。

3. 加载事件:
        1. onload:页面加载完成后立即发生。

4. 鼠标事件:
        1. onmousedown    鼠标按钮被按下。
        2. onmouseup    鼠标按键被松开。
        3. onmousemove    鼠标被移动。
        4. onmouseover    鼠标移到某元素之上。
        5. onmouseout    鼠标从某元素移开。

5. 键盘事件:
        1. onkeydown    某个键盘按键被按下。    
        2. onkeyup        某个键盘按键被松开。
        3. onkeypress    某个键盘按键被按下并松开。

6. 改变事件
        1. onchange    域的内容被改变。

7. 表单事件:
        1. onsubmit    提交按钮被点击。

2.事件绑定

语法:

第一种:
    <标签  事件名=函数名>
第二种:
    标签对象.事件名=匿名函数

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--
        this代表的是触发当前事件的标签对象,此处就指代按钮。
    -->
    <input type="button"  value="按钮" onclick="demo1()" onmouseover="demo4(this)" onmouseout="demo5(this)"><br>
    <input type="text" onblur="demo2()"><br>
    <select onchange="demo3()">
        <option>中国</option>
        <option>俄罗斯</option>
        <option>美国</option>
    </select>
    <br>
    <input id="btn" type="button" value="按钮2">
</body>
<script>

    /**
     *           onclick
                 onblur
                 onchange  : 一般作用于下拉列表
                 onsubmit
                 onmouseover
                 onmouseout
                 onload

            事件绑定函数的语法:

            第一种:
                <标签名  事件名="函数名">


            第二种方式:(开发常用)

                标签对象.事件名=匿名函数

     *
     */

    function demo1() {
        alert("按钮被点击了");
    }

    function demo2() {
        alert("输入框失去焦点了,我要验证码输入框的内容的格式是否正确");
    }

    function demo3() {
        alert("下拉列表的内容改变了");
    }

    function demo4(myinput) {
        //修改按钮的背景色
        myinput.style.backgroundColor="blue";
    }
    function demo5(myinput) {
        myinput.style.backgroundColor="green";
    }

    //通过标签的id的属性值获取标签对象
    let btn = document.getElementById("btn");
    btn.onclick = function () {
        alert("第二种绑定事件的方式");
    }
</script>
</html>

9、js中的内置对象

内置对象: js提供好的对象, 开发者直接可以创建对象,并使用

1.string对象

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>10-字符串</title>

</head>
<body>
<!--

1. 构造字符串对象可以使用
    a. 双引号
    b. 单引号
    c. 反引号(重音符) 键盘左上角 esc下面 (es6字符串模板)
        经常用在拼接字符串: 避免单双引手动拼接
            '字符串${变量名}字符串'

2. 字符串常用方法
      substring(startIndex,endIndex) 提取字符串中两个指定的索引号之间的字符。  包头不包尾
      toLowerCase() 把字符串转换为小写。
      toUpperCase() 把字符串转换为大写。
      split() 把字符串分割为字符串数组。
      trim() 去掉首尾空格

-->
<script type="text/javascript">
    // ------------ 1. 构造字符串对象可以使用  双引号,单引号,反引号
    // let str2 = new String("abc")
    let str = "abc"
    let str2 = 'abc'
    let str3 = `abc`
    console.log(str);
    console.log(str2);
    console.log(str3);

    let i = 100; // 效果: 小丽体重i斤
    let str4 = '小丽体重' + i + '斤'
    console.log(str4);

    let str5 = `小张体重${i}`
    console.log(str5);
    // ------------ 2. 字符串常用方法

    let str6 = "askfdjASDFAJSDLas"
    var s = str6.toLowerCase();
    console.log(s)
</script>
</body>
</html>

2.array对象

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>11-数组</title>

</head>
<body>
<!--

数组
    查询手册完成:
       1. 创建数组
           a.  let array = new Array('a','b','c')
           b.  let array = ['a','b','c']  -> 中括号 (常用)

           js的数组更像java中的集合,长度可以变化的,元素类型不必一致

       2. 数组常用方法
            concat() 连接两个或更多的数组,并返回结果。
            push() 向数组的末尾添加一个或更多元素,并返回新的长度。
            pop() 删除并返回数组的最后一个元素
            join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
                与 字符串.split()切割为数组 方法相反
            sort() 对数组的元素进行排序
-->
<script>
    let array1 = new Array('a','b','c')
    let array2 = ['d','e','f']

    console.log(array1);
    console.log(array2);

    for (let i = 0; i < array1.length; i++) {
        console.log(array1[i]);
    }

    // 常用方法
        //concat: 两个数组拼接, 产生新数组
    let array3 = array1.concat(array2)
    console.log(array3);

    console.log(array1.length)
        //往数组添加一个元素
    array1.push(100)
    console.log(array1.length)
    console.log(array1)
        //删除并返回最后一个元素
    let s = array1.pop();
    console.log(array1)
    console.log(s)
        //将数组转成字符串,元素之间用参数中的内容隔开(string的split方法相反)
    let str = array1.join(",");
    console.log(str);

    let arr = str.split(",")
    console.log(arr);

    let arr2 = [4, 3, 1, 2]
    console.log(arr2.sort()) // 默认升序
    console.log(arr2.sort().reverse()) // 降序

    var f = function(o1,o2){
        // return o1-o2; // 升序
        return o2-o1; // 降序
    }
    let arr3 = arr2.sort(f) // 传参: 参数还是函数类型的变量
    console.log(arr3);

    console.log(arra2.sort(function (a,b) {
        return a-b;
    }))

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

3.date对象

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>12-日期</title>
</head>
<body>
<!--
    日期  Date
        1. 创建对象
             let date = new Date(); 获取当前时间时间

        2. 常用方法
            toLocaleString()      转换为本地日期格式的字符串
            getFullYear() 获取日期中的year
            getMonth()   获取日期中的month
            getDate()    获取日期中的 号
            getTime()   获取时间毫秒值(时间原点: 1970年1月1号0时分秒)
-->

    <script>
        let date = new Date();
        //Sun May 24 2020 14:38:34 GMT+0800 (中国标准时间:东八区)
        console.log(date);
        console.log(date.toLocaleString()); // 转换为本地日期格式的字符串
        console.log(date.getFullYear()); // 年 四位
        console.log(date.getMonth()+1);// 月 范围:0~11
        console.log(date.getDate()); // 日
        console.log(date.getTime()); // 1970年~今毫秒值
    </script>

</body>
</html>

4.math对象

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>13-数学</title>

</head>
<body>
<body>
<!--
数学运算
    查询手册完成
    1. 四舍五入 round()
    2. 向下取整 floor() 地板
    3. 向上取整 ceil()  天花板
    4. 产生随机数 random() :返回 [0,1) 之间的随机数。
            [0,1) 左闭右开区间,包含0不包含1

-->
<script >
    let n = 1234.567
    //1. 四舍五入取整
    console.log(Math.round(n));
    //2. 向下取整
    console.log(Math.floor(n));
    //3. 向上取整
    console.log(Math.ceil(n));
    //4. 产生随机数
    for (let i = 0; i < 10 ; i++) {
        console.log(Math.random());
    }
</script>
</body>
</html>

5.RegExp正则对象

正则表达式字符含义:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
语法:

第一种:
     let reg = new RegExp("正则表达式"); 此处正则需要\\

第二种:
    let reg = /正则表达式/;

api
    正则对象.test(str);校验字符串是否满足正则表达式

代码:

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

</body>
<script>

    /**
         第一种:
         let reg = new RegExp("正则表达式"); 此处正则需要\\

         第二种:
         let reg = /正则表达式/;

         api
         正则对象.test(str);校验字符串是否满足正则表达式

        注意:js中的正则表达式必须加上^  $  .表示匹配整个字符串。否则表示的是  是否含有

     */


    let username = "admin22555";

    //用户名必须在6到8位(数字,字母,下滑线)之间
    //let regExp = new RegExp("^\\w{6,8}$");   此种方式中,需要\\

    let regExp = /^\w{6,8}$/;

    console.log(regExp.test(username));
</script>
</html>

小结:

1.如果采用new的方式创建正则对象,字符串中需要使用2个\

6.全局函数

我们不需要通过任何对象,可以直接调用的就称为全局函数

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

</body>
<script>


    /**
     *  parseInt():解析字符串,返回一个整数
     *
     */
    let str = '100.12px'
    let number = parseInt(str);
    console.log(number);

    /**
     *  encodeURI() 把字符串编码为 URI。
     *          杯子 -> %E6%9D%AF%E5%AD%90
     *  decodeURI() 解码某个编码的 URI 。
     *           %E6%9D%AF%E5%AD%90 ->  杯子
     *
     */
    let str3 = '杯子'
    var result = encodeURI(str3); //编码
    console.log(result);

    console.log(decodeURI(result)) //解码
</script>
</html>

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

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

相关文章

鸿蒙 DevEcho Studio 查看设备文件

在菜单栏单击View > Tool Windows > Device File Browser&#xff0c;打开Device File Browser。 从下拉列表中选择设备&#xff08;设备需已连接&#xff09;。 选择设备后&#xff0c;显示文件/文件夹列表&#xff0c;可进行以下操作&#xff1a; 右键单击目录…

24 年程序员各岗位薪资待遇汇总(最新)

大家好&#xff0c;我是程序员鱼皮。今天分享 24 年 6 月最新的程序员各岗位薪资待遇汇总。 数据是从哪儿来的呢&#xff1f;其实很简单&#xff0c;BOSS 直聘上有一个免费的薪酬查询工具&#xff0c;只要认证成为招聘者就能直接看&#xff0c;便于招聘者了解市场&#xff0c;…

【操作与配置】Xshell安装使用

Xshell是一款功能强大的远程管理工具&#xff0c;主要用于通过SSH&#xff08;Secure Shell&#xff09;、TELNET等协议连接和管理远程服务器。它支持多种会话管理、脚本编写、端口转发等功能&#xff0c;适合系统管理员和开发者使用。 安装 官网下载&#xff1a;家庭/学校免费…

咖啡消费旺季到来 为何想转让的库迪联营商却越来越多

文 | 智能相对论 作者 | 霖霖 去年还在朝“三年万店”计划狂奔的库迪&#xff0c;今年已出现明显“失速”。 早在今年2月&#xff0c;库迪就官宣其门店数已超过7000家&#xff0c;如今4个多月过去&#xff0c;据极海品牌监测数据显示&#xff0c;截至6月27日&#xff0c;其总…

【日记】度过了一个堕落的周末……(184 字)

正文 昨天睡了一天觉&#xff0c;今天看了一天《三体》电视剧。真是堕落到没边了呢&#xff08;笑。本来想写代码完成年度计划&#xff0c;或者多写几篇文章&#xff0c;但实在不想写&#xff0c;也不想动笔。 感觉这个周末什么都没做呢&#xff0c;休息倒是休息好了。 今天 30…

GP37-S-N、GP37-S-E、GP37-S-R比例电磁铁驱动放大器

比例阀用电磁铁EP45-C、EP37-E、EP45-G、EP45-N、GP37-3-A、GP37-S-N、GP37-S-E、GP37-S-R在直流12V/24V的电液比例控制系统中与BEUEC比例控制放大器配套使用&#xff0c;共同作用于比例阀的控制。电磁铁输出力通过负载弹簧转换成位移&#xff0c;实现电流-力-位移线性转换&…

Unity开箱即用的UGUI面板的拖拽移动功能

文章目录 &#x1f449;一、背景&#x1f449;二、效果图&#x1f449;三、原理&#x1f449;四、核心代码&#x1f449;五&#xff0c;总结 &#x1f449;一、背景 之前做PC项目时常常有面板拖拽移动的需求&#xff0c;今天总结封装一下&#xff0c;做成一个随时随地可复用的…

Web工程化

1、webpack 1.1 概念 一个前端打包器。 webpack 只识别javascript. 所以需要安装nodejs环境。 1.2 运行环境 Nodejs Nodejs 是运行JavaScript的环境。 因为nodejs发布了许多版本&#xff0c;在不同的技术栈下&#xff0c;需要使用不同的nodejs。 所以需要在电脑上安装n…

鸿蒙应用更新跳转到应用市场

鸿蒙没有应用下载安装&#xff0c;只支持跳转到应用市场更新 gotoMarket(){try {const request: Want {parameters: {// 此处填入要加载的应用包名&#xff0c;例如&#xff1a; bundleName: "com.huawei.hmsapp.appgallery"bundleName: com.huawei.hmos.maps.app}}…

SSM“点点通”餐饮点餐小程序-计算机毕业设计源码11264

摘要 随着中国经济的飞速增长&#xff0c;消费者的智能化水平不断提高&#xff0c;许多智能手机和相关的软件正在得到更多的关注和支持。其中&#xff0c;微信的餐饮点餐小程序更是深得消费者的喜爱&#xff0c;它的出现极大地改善了消费者的生活质量&#xff0c;同时&#xf…

大数据开发中如何计算用户留存及SQL示例

在大数据开发领域&#xff0c;用户留存是一个关键指标&#xff0c;它反映了产品吸引并保留用户的能力。 留存率的计算不仅有助于评估产品的健康状况&#xff0c;还能为产品优化和市场策略提供重要依据。 本文将详细介绍如何在大数据开发中计算用户留存&#xff0c;并附带具体…

docker k8s

1、docker是什么&#xff1f; 将环境和程序一起打包给到 服务器运行的工具软件。 2、基础镜像base image是什么&#xff1f; 操作系统&#xff1a;用户空间、内核空间 阉割操作系统&#xff0c;利用其的用户空间&#xff08;因为应用程序运行在用户空间&#xff09;&#xf…

永磁同步电机离线参数识别

引言 永磁同步电机&#xff08;PMSM&#xff09;因其结构简单、功率密度高、转矩惯量比大和效率高等优点&#xff0c;在工业生产、航空航天和新能源交通等领域得到了广泛应用。然而&#xff0c;传统的参数辨识方法依赖位置传感器&#xff0c;这不仅增加了硬件成本&#xff0c;…

薄冰英语语法学习--名词3-性别

上面的是人。 下面的是动物。 花个2分钟看一下人的&#xff0c;在花2分钟看一下动物的。记不住没关系&#xff0c;读一遍。像 我这样 男人 man &#xff0c;女人 woman 。xxx xxx ,xxx ,xxx 读完发现很多带ness代表雌性的。 核心 英语中的雌雄可以用&#xff0c;man 和 wo…

C++ :lambda表达式

目录 lambda表达式书写格式&#xff1a; lambda表达式各部分说明&#xff1a; lambda的使用示范&#xff1a; 注意事项&#xff1a; 返回值类型可以省略&#xff0c;参数也可也省略&#xff1a; sort内部也可以直接写lambda表达式&#xff1a; 排序时利用lambda进行排序…

【正点原子K210连载】第十六章 machine模块实验 摘自【正点原子】DNK210使用指南-CanMV版指南

1&#xff09;实验平台&#xff1a;正点原子ATK-DNK210开发板 2&#xff09;平台购买地址https://detail.tmall.com/item.htm?id731866264428 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第十六章 machine模块…

小区服务前台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;住户管理&#xff0c;管理员管理&#xff0c;员工管理&#xff0c;安保管理&#xff0c;安保分配管理&#xff0c;客服聊天管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;公告&#xff0c;…

AI绘画Stable Diffusion 高清放大,多种方法详解,建议收藏!

&#x1f463; 本章概述 在Stable Diffusion我们想要得到一张高分辨率且具有细节特征的图片时&#xff0c;我们就需要使用一些图片放大算法来帮助我们实现。 本文主要概述在sd中常常使用的高清修复方法以及不同方法的区别和应用场景。同时也给出一些推荐的工作流&#xff0c;你…

python实现符文加、解密

在历史悠久的加密技术中&#xff0c;恺撒密码以其简单却有效的原理闻名。通过固定的字母位移&#xff0c;明文可以被转换成密文&#xff0c;而解密则是逆向操作。这种技术不仅适用于英文字母&#xff0c;还可以扩展到其他语言的字符体系&#xff0c;如日语的平假名或汉语的拼音…

jvm性能监控常用工具

在java的/bin目录下有许多java自带的工具。 我们常用的有 基础工具 jar:创建和管理jar文件 java&#xff1a;java运行工具&#xff0c;用于运行class文件或jar文件 javac&#xff1a;java的编译器 javadoc&#xff1a;java的API文档生成工具 性能监控和故障处理 jps jstat…