主頁 > 後端開發 > day01-ES6新特性

day01-ES6新特性

2023-01-05 07:08:30 後端開發

ES6新特性

1.ES6是什么?

  1. DCMAScript 6.0(以下簡稱ES6)是JavaScript語言的下一代標準,2015年6月發布
  2. ES6設計目標:達到JavaScript語言可以用來撰寫復雜的大型程式,成為企業級開發語言
  3. ECMAScript和JavaScript的關系:ECMAScript是JavaScript的規范/規則,JavaScript是ECMAScript的一種實作

2.let宣告變數

2.1應用實體-基本使用

關于IDEA新版本沒有static web創建選項

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>let使用</title>
    <script type="text/javascript">
        let name = "HelloWorld";//使用let宣告變數,和var類似
        
        //1.console.log("name=", name);//使用逗號可以輸出物件的完整資訊
        //使用加號,就是字串的拼接,如果name是一個物件,會輸出object,而不會輸出物件的完整資訊
        //2.console.log("name="+ name);
        console.log("name=", name);
    </script>
</head>
<body>

</body>
</html>
image-20230104183824940

2.2注意事項和使用細節

  1. let宣告的變數有嚴格區域作用域
  2. let只能宣告一次,var可以宣告多次
  3. let不存在變數提升,var存在變數提升
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>let 使用注意事項和細節</title>
    <script type="text/javascript">
        /**
         * 細節1. let宣告的變數有嚴格區域作用域
         * 細節2. let只能宣告一次,var可以宣告多次
         * 細節3. let不存在變數提升,var存在變數提升
         */

        //let細節1
        //1)let宣告的變數,在代碼塊中,則作用域在代碼塊中
        //2)var宣告的變數,在代碼塊中,作用域沒有限制
        {
            var name = "你好";
            console.log("name=", name);

            let job = "java工程師";
            console.log("job=", job);
        }
        console.log("name=", name);
        //console.log("job=", job);//job is not defined

        //let細節2-let只能宣告一次,var可以宣告多次
        var num1 = 100;
        var num1 = 200;
        console.log(num1);//200

        let num2 = 600;
        //let num2 = 900;//Uncaught SyntaxError: redeclaration of let num2
        console.log(num2);

        //let細節3-let不存在變數提升,var存在變數提升
        console.log("x=", x);//Uncaught ReferenceError: x is not defined
        var x = "tom";//var定義了x之后,控制臺輸出變為 x= undefined

        console.log("z=", z);//can't access lexical declaration 'z' before initialization
        let z = "marry";

    </script>
</head>
<body>

</body>
</html>

3.const宣告常量/只讀變數

3.1應用實體

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>const常量/只讀變數</title>
    <script type="text/javascript">
        /**
         * const基本使用
         * 1.常量在定義時,需要賦值
         * 2.常量定義后不能修改
         */
        
        // const PI;//missing = in const declaration
        const PI = 3.14;
        //PI = 3.141592653;//invalid assignment to const 'PI'
        console.log("PI=", PI);
    </script>
</head>
<body>

</body>
</html>

3.2注意事項和細節

  1. 常量在定義時,需要賦值
  2. 常量定義后不能修改

4.解構賦值

4.1基本介紹

  1. 解構賦值是對賦值運算子的拓展
  2. 是一種針對陣列或者物件進行模式匹配,然后對其中的變數進行賦值
  3. 主要有兩種形式:陣列解構 和 物件解構

4.2應用實體

例子1-陣列解構

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>陣列解構賦值</title>
    <script type="text/javascript">
        let arr = [1, 2, 3];
        //如果要看某個變數的型別
        console.log("arr=>", arr);//arr=> Array(3) [ 1, 2, 3 ]

        //陣列解構[解構,即取出元素]

        //1.傳統
        let x = arr[0], y = arr[1], z = arr[2];
        console.log(x, y, z);//1 2 3

        //2.ES6風格
        let [a, b, c] = arr;
        console.log("======================");
        console.log(a, b, c);//1 2 3
        let [num1, num2, num3] = [100, 200, 300];
        console.log(num1, num2, num3);//100 200 300

    </script>
</head>
<body>

</body>
</html>

例子2-物件解構

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>物件解構</title>
    <script type="text/javascript">
        /**
         * let moster={name:'牛魔王',age:800}
         * 細節說明
         * 1.物件解構時,let{name,age}中的name和age名稱需要和物件屬性名保持一致
         * 2.也可以解構物件部分屬性,比如let{age},這樣就中取出age屬性
         * 3.還有其他的形式,比如方法上使用物件解構
         */

            //monster是一個物件
        let monster = {name: '牛魔王', age: 800};

        //1.傳統方式取出屬性-解構
        //物件名.屬性名
        console.log(monster.name, " ", monster.age);//牛魔王   800

        //2.ES6物件解構
        // 2.1 把monster物件的屬性,依次賦值給{name, age}
        // 2.2 {name, age} 的取名要和物件的屬性名保持一致
        // 2.3 要使用{},不要使用[]
        // 2.4 {age, name}順序是無所謂的
        let {age, name} = monster;
        console.log("name=", name, "age=", age);//name= 牛魔王 age= 800
        //下面這個寫法也可以
        //let {age, name} = {name: '牛魔王', age: 800};

        //3.還有其他的形式,比如方法上使用物件解構
        function f1({age, name}) {//{name, age} 的取名依然要和物件的屬性名保持一致
            console.log("f1-name=", name, " ", "f1-age=", age)
        }

        //把一個物件賦給f1
        f1(monster);//f1-name= 牛魔王   f1-age= 800

    </script>
</head>
<body>

</body>
</html>
image-20230104193846207

5.模板字串

5.1基本介紹

  1. 模板字串使用反引號`將字串包裹
  2. 模板字串 可作為普通字串
  3. 模板字串 可用來定義多行字串,即可以將換行字串原生輸出
  4. 模板字串中 可以插入變數和運算式,使用${}
  5. 模板字串中 可以呼叫函式

5.2應用實體

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板字串</title>
    <script type="text/javascript">
        //1.字串 換行會原生輸出
        let str1 = `for(int i=0;i<10;i++){
            System.out.println("i="+i);
        }`;
        console.log("str1=>", str1);

        //2.字串中可以插入變數和運算式,變數名寫在${}中,${}中可以放入JavaScript運算式
        let name = "jack";
        //解讀:當決議模板字串中的${name}時,就找到最近的name變數,進行替換
        // 然后可以得到最后決議的字串
        let str2 = `My name is ${name}`;//My name is jack
        console.log(str2);

        //${}中還可以放入JavaScript運算式
        let str3 = `1+2=${1 + 2}`;
        console.log(str3);//1+2=3
        //運算式也可以使用變數
        let n1 = 80;
        let n2 = 20;
        let str4 = `${n1}+${n2}=${n1 + n2}`;
        console.log(str4);//80+20=100

        //3.字串中可以呼叫函式
        function sayHi(name) {
            return "hi " + name;
        }

        let str5 = `sayHi() 回傳的結果是=${sayHi('jack')}`;
        console.log(str5);//sayHi() 回傳的結果是=hi jack

        let name2 = "tom";
        let str6 = `sayHi() 回傳的結果是=${sayHi(name2)}`;
        console.log(str6);//sayHi() 回傳的結果是=hi tom

    </script>
</head>
<body>

</body>
</html>
image-20230104200519616

6.物件相關新特性

6.1宣告物件的簡寫

應用實體-宣告物件的簡寫

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>宣告物件的簡寫</title>
    <script type="text/javascript">
        const age = 800;
        const name = "牛魔王";
        //傳統 宣告/定義物件
        let monster = {name: name, age: age}

        //ES6 宣告/定義物件
        //1. {name,age} 表示物件的屬性名是 name和age
        //2. 屬性name的值是從變數/常量name來的(如果前面找不到就會報錯)
        let monster02 = {name, age};
        console.log("monster02=>", monster02);//monster02=> Object { name: "牛魔王", age: 800 }
        
    </script>
</head>
<body>

</body>
</html>

6.2物件方法簡寫

應用實體-物件方法簡寫

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>物件方法的簡寫</title>
    <script type="text/javascript">
        //傳統-物件方法定義
        let monster = {
            name: "紅孩兒",
            age: 100,
            sayHi: function () {
                console.log("name=", this.name, "age=", this.age);
            }
        }
        monster.sayHi();//name= 紅孩兒 age= 100

        //ES6-物件方法定義
        let monster2 = {
            name: "豬八戒",
            age: 888,
            sayHi() {
                console.log("name=", this.name, "age=", this.age);
            },
            f1() {
                console.log("f1()")
            }
        }
        monster2.sayHi();//name= 豬八戒 age= 888
        monster2.f1();//f1()
    </script>
</head>
<body>

</body>
</html>

6.3物件拓展運算子

深拷貝和淺拷貝

image-20230104205002098 image-20230104205540600

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>物件運算子的擴展</title>
    <script type="text/javascript">
        let cat = {name: "小花貓", age: 3};
        //實際上只是將cat2物件參考 指向了 cat物件參考所指向的 地址
        //let cat2 = cat;
        //如果我們改變cat2的值,那么cat中的值也會被改變,因為這是[淺拷貝]
        // cat2.name = "大貍貓";
        // console.log("cat=>", cat);//cat=> Object { name: "大貍貓", age: 3 }
        // console.log("cat2=>", cat2);//cat2=> Object { name: "大貍貓", age: 3 }

        //拷貝物件(深拷貝)
        let cat2 = {...cat};//深拷貝
        cat2.name = "加菲貓";
        console.log("cat=>", cat);//cat=> Object { name: "小花貓", age: 3 }
        console.log("cat2=>", cat2);//cat2=> Object { name: "加菲貓", age: 3 }


        //合并物件[深拷貝]
        let monster = {name: "白骨精", age: 99};
        let car = {brand: "賓利", price: 4500000};
        let monster_car = {...monster, ...car};
        //monster_car=> Object { name: "白骨精", age: 99, brand: "賓利", price: 4500000 }
        console.log("monster_car=>", monster_car);

        //一個問題,合并之后的物件的資料空間是獨立的呢,還是指向了原來的兩個物件的資料空間呢?
        //答案是獨立的,即【合并物件是深拷貝】
        monster_car.name = "狐貍精";
        //monster_car=> Object { name: "狐貍精", age: 99, brand: "賓利", price: 4500000 }
        console.log("monster_car=>", monster_car);
        //monster=> Object { name: "白骨精", age: 99 }
        console.log("monster=>", monster);
    </script>
</head>
<body>

</body>
</html>
image-20230104210748423

6.4注意事項和細節

物件拓展運算子是比較新的特性,低版本的瀏覽器不支持

7.箭頭函式

7.1基本介紹

  1. 箭頭函式提供了更加簡潔的函式書寫方式
  2. 基本語法是:(引數類表)=>{函式體}
  3. 若箭頭函式沒有引數或有多個引數,要用()括起來;若箭頭函式只有一個引數,則可以省略()
  4. 若箭頭函式函式體有多行陳述句,則用{}包括起來表示代碼塊
  5. 若函式體只有一行陳述句,并且需要回傳結果時,可以省略{},結果會自動回傳
  6. 箭頭函式多用于匿名函式的定義

7.2箭頭函式實體

7.2.1實體1-箭頭函式使用

一個引數,一行陳述句

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>箭頭函式的使用-01</title>
    <script type="text/javascript">
        //傳統定義函式
        var f1 = function (n) {
            return n * 2;
        }
        console.log("傳統=>" + f1(2));//傳統=>4

        //ES6箭頭函式的使用
        let f2 = (n) => {
            return n * 2;
        }
        console.log("f2()=>", f2(100));//f2()=> 200

        //上面的es6函式寫法還可以簡化:
        let f3 = n => n * 2;
        console.log("f3()=>", f3(100));//f3()=> 200

        //函式也可以傳給一個變數
        function hi(f4) {
            console.log(f4(900));
        }

        hi(n => n + 100);//1000
        hi(n => n - 100);//800
    </script>
</head>
<body>

</body>
</html>
image-20230104213535236

7.2.2實體2-箭頭函式使用

多個引數

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>箭頭函式的使用-02</title>
    <script type="text/javascript">
        //傳統定義函式
        var f1 = function (n, m) {
            var res = 0;
            for (var i = n; i <= m; i++) {
                res += i;
            }
            return res;
        }
        console.log("傳統=" + f1(1, 10));//傳統=55

        //ES6,箭頭函式使用
        let f2 = (n, m) => {
            var res = 0;
            for (var i = n; i <= m; i++) {
                res += i;
            }
            return res;
        }
        console.log("f2()=>", f2(1, 10));//f2()=> 55
    </script>
</head>
<body>

</body>
</html>

7.2.3實體3-箭頭函式+物件解構

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>箭頭函式+結構使用</title>
    <script type="text/javascript">
        const monster = {
            name: "紅孩兒",
            age: 100,
            skill: ['紅纓槍', '三昧真火']
        };
        //要求:在方法形參中取出monster物件的skill屬性

        //傳統方式
        function f1(skill) {
            console.log("skill=", skill);
        }

        f1(monster.skill);//skill= Array [ "紅纓槍", "三昧真火" ]

        //箭頭函式
        let f2 = ({skill}) => {
            console.log("skill=", skill);
        }
        // 1.f2 傳入物件monster
        // 2.f2形參是{skill},所以ES6的物件解構特性,
        //   會把實參monster中的同名屬性賦給skill
        // 3.物件解構的前提是形參的名字{skill}和實參的屬性名一致,順序無所謂
        // 4.注意要帶上{}
        f2(monster);//skill= Array [ "紅纓槍", "三昧真火" ]
    </script>
</head>
<body>

</body>
</html>
image-20230104215355326

7.3注意事項和使用細節

  1. 箭頭函式+物件解構,注意引數是({屬性名})
  2. ({屬性名})是由{}包括的,屬性名需要和物件屬性名一致

8.練習

  1. 給你一個物件let cat={name:'jack',age:10};要求使用模板字串顯示cat的資訊

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>ES6練習</title>
        <script type="text/javascript">
            let cat = {name: 'jack', age: 10};
            let str = `cat=> cat's name = ${cat.name} , cat's age= ${cat.age}`;
            console.log(str);//cat=> cat's name = jack , cat's age= 10
        </script>
    </head>
    <body>
    
    </body>
    </html>
    
    image-20230104220509279
  2. 看下面的代碼,請求輸出什么,并分析原因

    image-20230104215806491

    答:這里使用了物件解構,要求形參名稱要和物件的屬性值保持一致,否則無法匹配,

    因此這里的namex輸出undefined,age輸出10

    image-20230104225733655
  3. 根據給出的資料,用ES6的方式,構建物件,并提供方法,可以輸出資訊

    image-20230104215906333
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>ES6練習</title>
        <script type="text/javascript">
            //習題3
            let name = "周星馳";
            let job = "演員";
            let actor = {
                name,
                job,
                info() {
                    console.log("name=", this.name, "job=", this.job);
                }
            };
            actor.info();//name= 周星馳 job= 演員
        </script>
    </head>
    <body>
    
    </body>
    </html>
    
    image-20230104222319784
  4. 根據給出的資料,用ES6的方式,撰寫方法,使用物件解構的方式,得到oper和arr,并根據oper的值,oper可以是+、- 、* 、/ 來計算結果

    image-20230104221548645
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>ES6練習</title>
        <script type="text/javascript">
            //習題4
            var cal = {
                oper: "*",
                arr: [1, 2, 3, 5]
            }
            let calculator = ({oper, arr}) => {
                let res = 0;//初始化的值要考慮
                if (oper == "+") {
                    res = arr[0];
                    for (let i = 1; i < arr.length; i++) {
                        res += arr[i];
                    }
                } else if (oper == "-") {
                    res = arr[0];
                    for (let i = 1; i < arr.length; i++) {
                        res -= arr[i];
                    }
                } else if (oper == "*") {
                    res = arr[0];
                    for (let i = 1; i < arr.length; i++) {
                        res *= arr[i];
                    }
                } else if (oper == "/") {
                    res = arr[0];
                    for (let i = 1; i < arr.length; i++) {
                        res /= arr[i];
                    }
                } else {
                    console.log("oper輸入不正確..")
                }
                return res;
            }
            console.log(calculator(cal));//30
    
        </script>
    </head>
    <body>
    
    </body>
    </html>
    
  5. 呼叫f8函式,arr是陣列,fun傳入箭頭函式,可以計算arr的和,并寫出呼叫方法

    image-20230104221841011
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>ES6練習</title>
        <script type="text/javascript">
            //習題5
            let f8 = (arr, fun) => {
                console.log("結果=", fun(arr));
            }
            let arr = [10, 20, 30, 50];
            let add = (arr) => {
                let res = 0;
                for (let i = 0; i < arr.length; i++) {
                    res += arr[i];
                }
                return res;
            }
    
            f8(arr, add);//結果= 110
    
        </script>
    </head>
    <body>
    
    </body>
    </html>
    

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541188.html

標籤:其他

上一篇:FPGA:乒乓球比賽模擬機的設計

下一篇:淺談一下go語言中的slice及其一些小坑

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more