【前端】ES6基础

news2024/11/27 16:25:40

1.开发工具

vscode地址 :https://code.visualstudio.com/download, 下载对应系统的版本windows一般都是64位的

安装可以自选目录,也可以使用默认目录

插件:在这里插入图片描述
输入 Chinese,中文插件

安装: open in browser,直接右键文件,选择

在这里插入图片描述

F12打开控制台就能看到

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        console.log("人依远戍须看火");
        
    </script>
</body>
</html>

2.基本数据类型1️⃣

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        console.log("人依远戍须看火");
        // 变量
        let name = "张三"
        console.log(name)
        // string
        console.log(typeof name)
        // number
        let balance = 100
        console.log("余额", balance);
        console.log(typeof balance);

        // 常量
        const PI = 3.14
        console.log("PI", PI);

        // boolean
        let tv = true
        console.log(tv);
        console.log(typeof tv);

        // 对象
        let person = {
            name:"王五",
            age:18,
            weight:62.5

        }
        console.log(person);
        console.log(typeof person);
        
        // Map
        // Map相对干对象提供了更灵活、有序、高效的键值对存储和操作方式,当需要在大量键值对中快速查找或删除特定键值对时,Map比对象更高效
        // Map提供了一些便捷的方法来操作键值对,如:get()、set()、delete()
        // Map提供了一些便捷的迭代方法,如:forEach()、keys()、values()、entries()

        let boy = new Map([
            ["name","李四"],
            ["age","20"]
        ])
        console.log(boy);
        console.log(typeof boy);    
        
    </script>
</body>
</html>

3.基本数据类型2️⃣

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
        // Set() 集合
        let number666 = new Set([1,2,3,4,1,2])
        console.log(number666);
        let string666 = new Set([1,2,3,4,'1','2'])
        console.log(string666);
        
        // arr 数组
        let arr = ["a","b","c",1,"a"]
        console.log(arr);

        // function  函数
        function add(x,y){
             m=x+y
             console.log(m); 
        }
        add(5,7)

        // 类 
        class Person{
            constructor(name, age){
                this.name = name
                this.age = age
            }
            info(){
                console.log("name",this.name,"age",this.age);
                
            }
        }
        let person1 = new Person("秦始皇", 999)
        person1.info()
        let person2 = new Person("汉武帝", 888)
        person2.info()

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

4.函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //函数
        function getweb(){
            let web = "wwww.baidu.com"
            return web
        }
        console.log(getweb());
        // 传参,有默认值
        function add(number=5){
            return number+10
        }
        console.log(add(7));
        
        // 匿名函数
        let sub=function(x,y){
            return x-y
        }
        console.log(sub(7,2));

        // 箭头函数,把function换成箭头,并放()后面
        let plus = (a,b)=>{
            return a+b
        }
        console.log(plus(11,7));
        
        // 隐式函数,箭头函数去掉{}跟return
        let cheng = (m,n)=>m*n
        console.log(cheng(11,7));


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

5.数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 数组定义
        let arr = [10,11]
        console.log(arr);
        
        // push 向数组末尾添加一个或多个元素,并返回修改后数组的长度
        let arrlength = arr.push(12,13,14)
        console.log("arr",arr);
        console.log("length",arrlength);
        
        // unshift 想数组开头添加一个或 多个元素,并返回数组的长度
        let arrunshift = arr.unshift(8,9)
        console.log("arr",arr);
        console.log("unshift",arrunshift);

        // shift 删除数组中第一个元素,并返回被删除的元素
        let delement = arr.shift()
        console.log("arr",arr);
        console.log("shift",delement);

        // pop 删除数组中 最后一个元素,并返回被删除的元素
        let popement = arr.pop()
        console.log("arr",arr);
        console.log("pop",delement);

        // 删除指定元素,splice, 第一个参数-删除元素的索引位置,第二个参数-删除元素的数量,返回删除后的数组
        let delArr = arr.splice(2,2)
        console.log("arr",arr);
        console.log("delArr",delArr);

        // reverse, 颠倒数组中元素的顺序
        arr.reverse()
        console.log(arr);
        
        // 数组中元素按照首字母顺序排序
        let arr2 = ["banana","apple","","orange"]
        arr2.sort()
        console.log(arr2);

        // 比较函数(a,b)=>a-b,接收两个参数a,b用于比较两个元素的大小,返回a-b的结果决定了sort()方法的排序顺序
        // 若 a<b 则 a-b 是一个负数,表示a应该在b前面
        // 若 a=b 则 a-b 是0,位置保持不变
        // 若 a>b 则 a-b 是一个正数,表示a应该在b后面
        let arr3 = [5,20,13,14]
        arr3.sort((a,b)=>a-b)
        console.log(arr3);

        // 筛选符合条件的元素,返回一个新数组
        let arr4 = [10,11,12,13,14,15]
        let newArr = arr4.filter((value)=>{
            return value > 12
        })
        console.log("newArr",newArr);
        
        // 使用for循环便利循环数组
        let arr6 = ["一行白鹭上青天","鹅鹅鹅曲项向天歌",99,"杜甫"]
        for(let value of arr6){
            console.log("for...of",value);
            
        }
        // forEach
        arr6.forEach((value)=>{
            console.log("forEach",value);
            
        })
        arr6.forEach((value,index)=>{
            console.log("forEach",index,value);
            
        })  

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

6.Set

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // Set集合{}
        let fruits = new Set(["apple","orange","banana"])
        console.log(fruits);
        // 增加
        fruits.add("mango")
        console.log(fruits);
        // 删除
        fruits.delete("banana")
        console.log(fruits);
        // 判断是否存在
        console.log(fruits.has("apple"));
        
        // 大小
        console.log(fruits.size);
        
        // set -> 数组
        let arr = Array.from(fruits)
        console.log("arr",arr);

        let arr2 = [...fruits]
        console.log("arr2",arr2);
        
        
        // 扩展运算符:展开可迭代对象
        let net = "www.baidu.com"
        let netAll = [...net]
        console.log(netAll);
        console.log([..."一行白鹭上青天"])
        // for
        for(let f of fruits){
            console.log("for-of",f);
            
        }
        // forEach
        fruits.forEach((value,index)=>{
            console.log(value,"index",index);
            
        })
        // 去重
        let numberArr = [1,2,3,4,3,2]
        let nuberSet = new Set(numberArr)
        console.log(nuberSet);
        

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

7. map

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // Map
        let student = new Map([
            ["name","朱元璋"],
            ["gender","男"],
            ["age",1000]
        ])

        console.log(student);
        
        // 增加
        student.set("height",180)
        console.log(student);
        // 删除
        student.delete("gender")
        console.log(student);

        // 判断是否存在
        console.log(student.has("gender"));

        // 键 唯一性,新增相同键名的会替换掉value值
        student.set("age",11111)
        console.log(student);
        // 大小
        console.log(student.size);
        // Map集合转换成 数组
        let arrMap = Array.from(student)
        console.log(arrMap);

        let arr = [...student]
        console.log(arr);
        // 循环 
        for(let i of student){
            console.log("for...of",i);
        }
        // 解构
        for (let [key,value] of student) {
            console.log("key",key,"value",value);
            
        }
        student.forEach((value,key) => {
            console.log("forEach key",key,"value",value);
            
        });

        student.clear()
        console.log(student);



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

8.对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 对象
        let user ={
            name:"曹操",
            gender:"男",
            web:"www.baidu.com"
        }
        console.log(user);

        user.height = 175
        console.log(user);
        // 修改
        user.web = "www.bilibili.com"
        console.log(user);
        // 删除
        delete user.gender
        console.log(user);
        // 是否存在
        let has = "name" in user
        console.log(has);
        // 属性数量,Object.keys(user).length
        console.log(Object.keys(user).length);

        // for in 循环遍历对象
        // for of 用于遍历可迭代对象[如数组/Set/Map/字符串等]
        // for in 用于遍历对象的可枚举属性
        for(let key in user){
            console.log("for...in",key,user[key]);
            
        }

        console.log(Object.entries(user));
        Object.entries(user).forEach(([key,value])=>{
            console.log("forEach",key,"value",value);
            
        })

        // 清空对象
        user = {}
        console.log(user);


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

9.私有属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
        class Person {
            name 
            #web //私有属性,是指仅在类的内部可以访问和操作的属性,外部无法直接访问和修改

            constructor(name,web){
                this.name = name
                this.#web = web
            }

            info(){
                // return "姓名:" + this.name + " 个人网站:" +this.web
                // `` esc下面符号
                return `姓名:${this.name} 个人网站:${this.#web}`
            }
            // 固定写法,存取器getter获取私有属性
            get web(){
                return this.#web
            }
            // 使用存取器setter设置私有属性
            set web(value){
                this.#web=value
            }
        }
        let person = new Person("刘备","www.liubei.com")
        console.log(person.web);

        person.web = "sunquan.com"
        console.log(person.web);
        
        // 使用拼接方式, 模版字符串
        console.log(person.info());

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

10. 继承extends

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 父类
        class Person{
            name 
            gender
            constructor(name,gender){
                this.name = name
                this.gender = gender
            }

            sleep(){
                return `${this.name},休息中...`
            }
        }
        // 子类
        class 赵匡胤 extends Person{
            web
            constructor(name, gender, web){
                super(name,gender)//调用父类构造函数
                this.web = web

            }

            eat(){
                return `${this.name} 正在吃饭...`
            }
        }

        let zky = new 赵匡胤("赵光义","男","www.dasong.com")
        // 调用子类方法
        console.log(zky.web);
        console.log(zky.eat());
        // 调用父类方法
        console.log(zky.gender);
        console.log(zky.sleep());

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

11.解构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 数组结构
        let [x, y] = [1,2]
        console.log("x",x, "y",y);
        
        let [,,c] = [10,20,30]
        console.log("c:",c);

        let [A, ...B] =[1,2,3,4,5,6]
        console.log("A:",A, "B:",B);

        let [x2,y2=200] = [100]
        console.log("x2:",x2,"y2:",y2);

        // 两数交换
        let x3 = 10
        let y3 = 20; //不加分好会报错
        [x3,y3] = [y3,x3]

        console.log("x3:",x3,"y3:",y3);

        let person = {
            name:"刘邦",
            gender:"男",
            web:"www.liubang.com"
        }

        let {name} = person
        console.log("name:",name);

        let {name:userName,gender,web} = person
        console.log("userName:",userName,"gender:",gender,"web:",web);
        
        
    </script>
</body>
</html>

12.Promise

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // promise,
        // 当创建一个promise对象时,它的初始状态为pending,表示异步执行未完成
        // 当异步执行成功时,会调用resolve函数把promise对象状态改变为fulfilled,可通过then方法获取异步操作结果
        // 当异步执行异常时,会调用reject函数把promise对象的状态改为rejected,可通过catch方法处理错误
        let promise = new Promise((resolve,reject)=>{
            // resolve("还钱了")
            reject("未还")
        })

        console.log("promise:",promise);//pending
        // 获取结果
        promise.then(result =>{
            console.log("result:",result);

        }).catch(result2 =>{
            console.log("result:",result2);
        }).finally(()=>{
            console.log("异步执行结束!");
            
        })



        // 以上也可以
        let promise10 = new Promise((resolve,reject)=>{
            resolve("回家了")
            // reject("未回家")
        }).then(result11 =>{
            console.log("result11:",result11);

        }).catch(result12 =>{
            console.log("result12:",result12);
        }).finally(()=>{
            console.log("异步执行结束!222");
            
        })

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

13.Fetch

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //fetch是基于Promise的api,它可以发送http请求,并接受服务器返回的响应数据
        //fetch返回的是一个Promise对象
        //get 请求
        fetch("http://127.0.0.1/get").then(response =>{
            //返回解析后的json数据,会传递给下一个then()方法中的回调函数
            return response.json() //response.json()用于将响应数据解析为json格式数据
        }).then(data=>{//data解析后的json数据
            console.log("get.data:",data);
        }).catch(error=>{
            console.log("get.error:",error.message);
            
        }).finally(()=>{
            console.log("finally");
            
        })
        // post 请求post,表单
        fetch('http://127.0.0.1/post',{
            method:"post",
            headers:{
                'Content-Type':'application/x-www-form-urlencoded'
            },
            body:new URLSearchParams({
                //URLSearchParams用于处理键值对类型的数据,并将其编码为url查询字符串
                name:'毛泽东',
                web:'wwww.maozedong.com'
            }),
        }).then(response=>{
            return response.json()
        }).then(data=>{
            console.log("post.data:",data);
            
        }).catch(error=>{
            console.log("post.error:",error.message);
            
        }).finally(()=>{
            console.log("finally");
            
        })

        // post 请求post,json
        fetch('http://127.0.0.1/post',{
            method:"post",
            headers:{
                'Content-Type':'application/json'
            },
            body:JSON.stringify({// JSON.stringify用于将对象转换成json字符串
                name:'毛泽东',
                web:'wwww.maozedong.com'
            }),
        }).then(response=>{
            return response.json()
        }).then(data=>{
            console.log("post.data:",data);
            
        }).catch(error=>{
            console.log("post.error:",error.message);
            
        }).finally(()=>{
            console.log("finally");
            
        })


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

14.Axios

npm安装,并设置淘宝镜像源

在这里插入图片描述

设置淘宝镜像源
npm config set registry https:/registry.npmmirror.com/

npm get registry

npm install axios

https:/unpkg.com/axios/dist/axios.min.js

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/axios.min.js"></script>
</head>

<body>
    <script>

        /*
        Axios 是基于 Promise 的网络请求库,它可以发送http请求并接收服务器返回的响应数据
        Axios 返回的是一个 Promise 对象
        Axios 不仅可以用于浏览器,也可以用于 Node.js,而 Fetch 主要用于浏览器
        */
        //get请求
        axios.get('http:/127.0.0.1/get').then(response => {
            console.log("get.data:", response.data)
        }).catch(error => {
            console.log("get.error:", error)
        }).finally(() => {
            console.log("get.finally")
        })

        //post请求 post
        let data = { //参数
            name: '邓小平',
            web: 'dengcode.com',
        }

        axios.post('http:/127.0.0.1/post', data, {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }).then(response => {
                console.log("post.data:", response.data)
        }).catch(error=>{
            console.log("post.error:",error.message);
            
        }).finally(()=>{
            console.log("finally");
            
        })

        // post 请求postJson【axios的默认请求头,application/json】
        axios.post('http:/127.0.0.1/post', data).then(response => {
                console.log("post.data:", response.data)
        }).catch(error=>{
            console.log("post.error:",error.message);  
        }).finally(()=>{
            console.log("finally");
            
        })


    </script>
</body>

</html>

t532y10432525@qingdaomedia.com

086137

Live Server扩展,模块化开发

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="vue.global.js"></script>
</head>
<body>

    <div id="app">
        {{msg}}

        <h2>{{web.title}}</h2>
        <h2>{{web.url}}</h2>
    </div>
    
    <script>
        // 解构
        const{createApp,reactive} = Vue

        createApp({

            //setup选项,用于设置响应式数据和方法等
            setup(){
                const web = reactive({
                    title:"主题",
                    url:"www.baidu.com"
                })

                return{
                    msg:"success",
                    web
                }
            }
        }).mount("#app")
    </script>
</body>
</html>

安装插件:Resharper,Live Server,Chinese,open in browser

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script src="vue.global.js"></script> -->
</head>
<body>

    <div id="app">
        {{msg}}

        <h2>{{web.title}}</h2>
        <h2>{{web.url}}</h2>
        {{number}}
    </div>
    
    <script type="module">
        import {createApp,reactive,ref} from './vue.esm-browser.js'


        createApp({
           

            //setup选项,用于设置响应式数据和方法等
            setup(){
                const number = ref(10) //ref 用于存储耽搁基本类型的数据,如:数字、字符串等
                number.value = 20 // 使用ref创建的响应式对象,需要通过.value属性来访问和修改其值
            

                const web = reactive({
                    title:"主题",
                    url:"www.baidu.com"
                })
                // 使用reactive创建响应式对象,可以直接通过属性名来访问和修改值
                web.url = "www.bilibili.com"

                return{
                    msg:"success",
                    web,
                    number
                }
            }
        }).mount("#app")
    </script>
</body>
</html>

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

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

相关文章

蓝桥杯模拟题不知名题目

题目:p是一个质数&#xff0c;但p是n的约数。将p称为是n的质因数。求2024最大质因数。 #include<iostream> #include<algorithm> using namespace std; bool fun(int x) {for(int i 2 ; i * i < x ; i){if(x % i 0)return false;}return true; } int main() …

Android 13 编译Android Studio版本的Launcher3

Android 13 Aosp源码 源码版本 Android Studio版本 Launcher3QuickStepLib (主要代码) Launcher3ResLib(主要资源) Launcher3IconLoaderLib(图片加载&#xff0c;冲突资源单独新建) 需要值得注意的是&#xff1a; SystemUISharedLib.jar 有kotlin和java下的&#xff0c;在 Lau…

VMware ubuntu创建共享文件夹与Windows互传文件

1.如图1所示&#xff0c;点击虚拟机&#xff0c;点击设置&#xff1b; 图1 2.如图2所示&#xff0c;点击选项&#xff0c;点击共享文件夹&#xff0c;如图3所示&#xff0c;点击总是启用&#xff0c;点击添加&#xff1b; 图2 图3 3.如图4所示&#xff0c;出现命名共享文件夹…

零地址挂页

零地址 如果我们有比较好的C编程基础&#xff0c;我们就会知道&#xff0c;我们在代码中定义了一个零地址或者空指针&#xff0c;那么它实际上会指向虚拟内存的零地址&#xff0c;多数操作系统&#xff0c;包括Win&#xff0c;在进程创建的时候&#xff0c;都会空出前64k的空间…

oneplus6线刷、trwp、magisk(apatch)、LSPosed、Shamiko、Hide My Applist

oneplus6线刷android10.0.1 oneplus6线刷包(官方android10.0.1)下载、线刷教程&#xff1a; OnePlus6-brick-enchilada_22_K_52_210716_repack-HOS-10_0_11-zip 启用开发者模式 设置 / 连续点击6次版本号 : 启用开发者模式设置/开发者模式/{打开 usb调试, 打开 网络adb调试,…

树---索引的进化--从二叉搜索树到B+Tree的光荣进化(未完)

平衡二叉树 1. 索引平衡二叉树&#xff08;AVL树&#xff09;是一种自平衡的二叉搜索树&#xff0c;它通过在插入和删除节点时自动调整树的结构&#xff0c;保持树的平衡&#xff0c;从而保证了树的高度始终保持在O(log n)的范围内&#xff0c;这对于提高搜索、插入和删除操作…

FileZilla 报错解决

一、错误:严重错误: 无法连接到服务器 解决方法&#xff1a;FileZilla站点的用户名密码要和linux用户名密码保持一致&#xff0c;出现这个报错大概率是用户名和密码不一致导致的。 二、错误&#xff1a;文件传输失败 解决方法&#xff1a;检查linux下的文件夹是否有可执行权限…

替代Postman ,17.3K star!

现在&#xff0c;许多人都朝着全栈工程师的方向发展&#xff0c;API 接口的编写和调试已成为许多开发人员必备的技能之一。 工欲善其事&#xff0c;必先利其器。拥有一款优秀的 API 工具对于任何工程师来说都是极为重要的&#xff0c;它能够帮助我们高效地完成各种开发任务。 …

Flutter 3.24.5安装配置——2024年11月26日

目录 1️⃣前置安装使用环境配置步骤安装Flutter SDK安装Android SDK修改文件默认安装位置&#xff08;.gradle, AVD&#xff09;开始项目 2️⃣执行结果&#x1fab2;Bug找不到**.jar文件 &#x1f517;参考链接 1️⃣前置安装 使用环境 Windows 11IDEA 2024.2.3Flutter 3.2…

Perforce SAST专家详解:自动驾驶汽车的安全与技术挑战,Klocwork、Helix QAC等静态代码分析成必备合规性工具

自动驾驶汽车安全吗&#xff1f;现代汽车的软件包含1亿多行代码&#xff0c;支持许多不同的功能&#xff0c;如巡航控制、速度辅助和泊车摄像头。而且&#xff0c;这些嵌入式系统中的代码只会越来越复杂。 随着未来汽车的互联程度越来越高&#xff0c;这一趋势还将继续。汽车越…

(计算机组成原理)期末复习

第一章 计算机的基本组成&#xff1a;硬件软件&#xff08;程序&#xff09;计算机系统 软件有系统软件&#xff08;系统管理工具&#xff09;&#xff0c;应用软件 计算机硬件&#xff1a;包括主机和外设&#xff0c;主机包括CPU和内存&#xff0c;***CPU由运算器和控制器所组…

UEFI 中的 Protocol

Protocol 在 UEFI 内核中的表示 typedef VOID *EFI_HANDLE;EFI_HANDLE是指向某种对象的指针&#xff0c;UEFI 用它来表示某个对象。 UEFI 扫描总线后&#xff0c;会为每个设备建立一个 Controller 对象&#xff0c;用于控制设备&#xff0c;所有该设备的驱动以 Protocol 的形式…

量子安全与经典密码学:一些现实方面的讨论

量子安全与经典密码学 背景&#xff1a;量子安全与经典密码学量子计算对传统密码学的威胁 安全性分析经典密码学的数学复杂性假设**量子密码学的物理不可克隆性假设** **性能与实现难度**后量子算法在经典计算机上的运行效率**量子通信设备的技术要求与成本** **可扩展性与适用…

【大模型】LLaMA-Factory的环境配置、微调模型与测试

前言 【一些闲扯】 时常和朋友闲聊&#xff0c;时代发展这么快&#xff0c;在时代的洪流下&#xff0c;我们个人能抓住些什么呢。我问了大模型&#xff0c;文心一言是这样回答的&#xff1a; 在快速发展的时代背景下&#xff0c;个人确实面临着诸多挑战&#xff0c;但同时也充满…

PostgreSQL的学习心得和知识总结(一百五十八)|在线调优工具pgtune的实现原理和源码解析

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

汽车渲染领域:Blender 和 UE5 哪款更适用?两者区别?

在汽车渲染领域&#xff0c;选择合适的工具对于实现高质量的视觉效果至关重要。Blender和UE5&#xff08;Unreal Engine 5&#xff09;作为两大主流3D软件&#xff0c;各自在渲染动画方面有着显著的差异。本文将从核心定位与用途、工作流程、渲染技术和灵活性、后期处理与合成四…

机器学习—迁移学习:使用其他任务中的数据

对于一个没有那么多数据的应用程序&#xff0c;迁移学习是一种奇妙的技术&#xff0c;它允许你使用来自不同任务的数据来帮助你的应用程序&#xff0c;迁移学习是如何工作的&#xff1f; 以下是迁移学习的工作原理&#xff0c;假设你想识别手写的数字0到9&#xff0c;但是你没…

LeetCode 3206.交替组 I:遍历

【LetMeFly】3206.交替组 I&#xff1a;遍历 力扣题目链接&#xff1a;https://leetcode.cn/problems/alternating-groups-i/ 给你一个整数数组 colors &#xff0c;它表示一个由红色和蓝色瓷砖组成的环&#xff0c;第 i 块瓷砖的颜色为 colors[i] &#xff1a; colors[i] …

如何通过高效的缓存策略无缝加速湖仓查询

引言 本文将探讨如何利用开源项目 StarRocks 的缓存策略来加速湖仓查询&#xff0c;为企业提供更快速、更灵活的数据分析能力。作为 StarRocks 社区的主要贡献者和商业化公司&#xff0c;镜舟科技深度参与 StarRocks 项目开发&#xff0c;也为企业着手构建湖仓架构提供更多参考…

25A物联网微型断路器 智慧空开1P 2P 3P 4P-安科瑞黄安南

微型断路器&#xff0c;作为现代电气系统中不可或缺的重要组件&#xff0c;在保障电路安全与稳定运行方面发挥着关键作用。从其工作原理来看&#xff0c;微型断路器通过感知电流的异常变化来迅速作出响应。当电路中的电流超过预设的安全阈值时&#xff0c;其内部的电磁感应装置…