JavaScript基礎視頻教程總結(071-080章)

来源:https://www.cnblogs.com/iflygofy/archive/2018/12/21/10156154.html
-Advertisement-
Play Games

所有基礎課程鏈接: 1.JavaScript基礎視頻教程總結(001-010章) 2.JavaScript基礎視頻教程總結(011-020章) 3. JavaScript基礎視頻教程總結(021-030章) 4. JavaScript基礎視頻教程總結(031-040章) 5. JavaScript基 ...


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>070-080章總結</title>
</head>
<body>
    
<pre>
071. 數組字面量
</pre>
<script type="text/javascript">
    console.log("第071");
    
    //創建一個數組
    var arr = new Array();
    //使用字面量來創建數組
    //語法:[]
    var arr = [];
    console.log(typeof arr);
    //使用字面量創建數組時,可以在創建時就指定數組中的元素
    var arr = [1,2,3,4,5,10];
    console.log(arr[3]);
    //使用構造函數創建數組時,也可以同時添加元素,將要添加的元素作文構造函數的參數傳遞
    //元素之間使用,隔開
    var arr2 = new Array(10,20,30);
    console.log(arr2);
    //創建一個數組數組中只有一個元素10
    arr = [10];
    //創建一個長度為10的數組
    arr2 = new Array(10);
    console.log(arr2.length);
    //數組中的元素可以是任意的數據類型
    arr = ["hello",1,true,null,undefined];
    //也可以是對象
    var obj = {name:"孫悟空"};
    arr[arr.length] = obj;
    arr = [{name:"孫悟空"},{name:"沙和尚"},{name:"豬八戒"}];
    //也可以是一個函數
    arr = [ function(){alert(1)} , function(){alert(2)} ];
    console.log(arr);
    //arr[0]();
    //數組中也可以放數組,如下這種數組我們稱為二維數組
    arr = [[1,2,3],[3,4,5],[5,6,7]];
    console.log(arr[1]);
</script>

<pre>
072. 數組的4個常用的方法
1.push()
 該方法可以向數組的末尾添加一個或多個元素,並返回數組的新的長度
可以將要添加的元素作為方法的參數傳遞,
這樣這些元素將會自動添加到數組的末尾
該方法會將數組新的長度作為返回值返回
2.pop()
該方法可以刪除數組的最後一個元素,並將被刪除的元素作為返回值返回
3.unshift()
向數組開頭添加一個或多個元素,並返回新的數組長度
向前邊插入元素以後,其他的元素索引會依次調整
4.shift()
可以刪除數組的第一個元素,並將被刪除的元素作為返回值返回
</pre>
<script type="text/javascript">
    console.log("第072");
    
    //創建一個數組
    var arr = ["孫悟空","豬八戒","沙和尚"];
    //push()
    var result = arr.push("唐僧","蜘蛛精","白骨精","玉兔精");
    console.log(arr);
    console.log("result = "+result);
    //pop()
    result = arr.pop();
    console.log(arr);
    console.log("result = "+result);
    // unshift()
    arr.unshift("牛魔王","二郎神");
    console.log(arr);
    //shift()
    result = arr.shift();
    result = arr.shift();
    console.log(arr);
    console.log("result = "+result);
</script>

<pre>
073. 數組的遍歷
所謂的遍曆數組,就是將數組中所有的元素都取出來
</pre>
<script type="text/javascript">
    console.log("第073");
    
    //創建一個數組
    var arr = ["孫悟空","豬八戒","沙和尚","唐僧","白骨精"];
    for(var i=0 ; i<arr.length ; i++){
        console.log(arr[i]);
    }
</script>

<pre>
074. 數組練習
</pre>
<script type="text/javascript">
    console.log("第074");
    
    function Person(name , age ){
        this.name = name;
        this.age = age;
    }
    // 修改Person原型的toString
    Person.prototype.toString = function(){
        return "Person[name="+this.name+",age="+this.age+"]";
    };
    // 創建一個Person對象
    var per = new Person("孫悟空",18);
    var per2 = new Person("豬八戒",28);
    var per3 = new Person("紅孩兒",8);
    var per4 = new Person("蜘蛛精",16);
    var per5 = new Person("二郎神",38);
    // 將這些person對象放入到一個數組中
    var perArr = [per,per2,per3,per4,per5];
    // 創建一個函數,可以將perArr中的滿18歲的Person提取出來,然後封裝到一個新的數組中並返回
    // arr 形參,要提取信息的數組
    function getAdult(arr){
        //創建一個新的數組
        var newArr = [];
        //遍歷arr,獲取arr中Person對象
        for(var i=0 ; i<arr.length ; i++){
            var p = arr[i];
            //判斷Person對象的age是否大於等於18
            if(p.age >= 18){
                //如果大於等於18,則將這個對象添加到newArr中
                //將對象放入到新數組中
                newArr.push(p);
            }
        }
        //將新的數組返回
        return newArr;
    }
    var result = getAdult(perArr);
    console.log(result);
</script>

<pre>
075. forEach()方法遍歷
</pre>
<script type="text/javascript">
    console.log("第075");
    
    /*
     * 一般我們都是使用for迴圈去遍曆數組,
     * JS中還為我們提供了一個方法,用來遍曆數組
     * forEach()
     * - 這個方法只支持IE8以上的瀏覽器
     * IE8及以下的瀏覽器均不支持該方法,所以如果需要相容IE8,則不要使用forEach
     * 還是使用for迴圈來遍歷
     */
    //創建一個數組
    var arr = ["孫悟空","豬八戒","沙和尚","唐僧","白骨精"];
    /*
     * forEach()方法需要一個函數作為參數
     *  - 像這種函數,由我們創建但是不由我們調用的,我們稱為回調函數
     *  - 數組中有幾個元素函數就會執行幾次,每次執行時,瀏覽器會將遍歷到的元素
     *    以實參的形式傳遞進來,我們可以來定義形參,來讀取這些內容
     *  - 瀏覽器會在回調函數中傳遞三個參數:
     *      第一個參數,就是當前正在遍歷的元素
     *      第二個參數,就是當前正在遍歷的元素的索引
     *      第三個參數,就是正在遍歷的數組
     *      
     */
    arr.forEach(function(value,index,obj){
        console.log(value)
    })
</script>

<pre>
076. slice和splice方法
</pre>
<script type="text/javascript">
    console.log("第076");
    var arr = ["孫悟空","豬八戒","沙和尚","唐僧","白骨精"];
    
    /*
     * slice()
     *  - 可以用來從數組提取指定元素
     *  - 該方法不會改變元素數組,而是將截取到的元素封裝到一個新數組中返回
     *  - 參數:
     *      1.截取開始的位置的索引,包含開始索引
     *      2.截取結束的位置的索引,不包含結束索引
     *          - 第二個參數可以省略不寫,此時會截取從開始索引往後的所有元素
     *      - 索引可以傳遞一個負值,如果傳遞一個負值,則從後往前計算
     *          -1 倒數第一個
     *          -2 倒數第二個
     */
    var result = arr.slice(1,4);
    result = arr.slice(3);
    result = arr.slice(0,-1);
    console.log(result);
    console.log(arr);
    /*
     * splice()
     *  - 可以用於刪除數組中的指定元素
     *  - 使用splice()會影響到原數組,會將指定元素從原數組中刪除
     *      並將被刪除的元素作為返回值返回
     *  - 參數:
     *      第一個,表示開始位置的索引
     *      第二個,表示刪除的數量
     *      第三個及以後。。
     *          可以傳遞一些新的元素,這些元素將會自動插入到開始位置索引前邊
     *  
     */
    
    arr = ["孫悟空","豬八戒","沙和尚","唐僧","白骨精"];
    var result = arr.splice(3,2,"牛魔王","鐵扇公主","紅孩兒");
    console.log(result);
    console.log(arr);
</script>

<pre>
077. 數組去重練習
</pre>
<script type="text/javascript">
    console.log("第077");
    
    var arrqq = [1,2,3,4,5,2,2,2,4,1,6,7,8,3,2,1,9] 
    //01
    for (var i=0;i<arrqq.length;i++) {
        for (var j=i+1; j<arrqq.length; j++) {
            if (arrqq[i] == arrqq[j]) {
                arrqq.splice(j,1)
                //當刪除了當前j所在的元素以後,後邊的元素會自動補位
                //此時將不會在比較這個元素,我需要在比較一次j所在位置的元素
                //使j自減
                j--
            } 
        }
    }
    console.log(arrqq);
    //02 使用的javascript的 indexOf 方法
    Array.prototype.distinct = function(){
        var newArr =[]
        var repeatArr =[]
        this.forEach(function(v){
            if(newArr.indexOf(v) < 0){
                newArr.push(v)
            }
        })
        return newArr
    }
    //03 使用對象中的屬性查找的方法
    Array.prototype.unique = function(){
    var newArr = [];
    var obj = {};
    for(var i = 0; i < this.length; i++){
        if(!obj[this[i]]){
            newArr.push(this[i]);
            obj[this[i]] = 1;
        }
    }
        return newArr;
    }
    var result1 = arrqq.distinct()
    var result2 = arrqq.unique()
    console.log(result1)
    console.log(result2)
    console.log(arrqq)
</script>

<pre>
078. 數組的剩餘方法
1. concat()可以連接兩個或多個數組,並將新的數組返回
- 該方法不會對原數組產生影響
2. join()
- 該方法可以將數組轉換為一個字元串
- 該方法不會對原數組產生影響,而是將轉換後的字元串作為結果返回
- 在join()中可以指定一個字元串作為參數,這個字元串將會成為數組中元素的連接符
如果不指定連接符,則預設使用,作為連接符
3. reverse()
- 該方法用來反轉數組(前邊的去後邊,後邊的去前邊)
- 該方法會直接修改原數組
4. sort()
- 可以用來對數組中的元素進行排序
- 也會影響原數組,預設會按照Unicode編碼進行排序
- 所以對數字進排序時,可能會得到錯誤的結果。
我們可以自己來指定排序的規則
我們可以在sort()添加一個回調函數,來指定排序規則,
回調函數中需要定義兩個形參,
瀏覽器將會分別使用數組中的元素作為實參去調用回調函數
使用哪個元素調用不確定,但是肯定的是在數組中a一定在b前邊
- 瀏覽器會根據回調函數的返回值來決定元素的順序,
如果返回一個大於0的值,則元素會交換位置
如果返回一個小於0的值,則元素位置不變
如果返回一個0,則認為兩個元素相等,也不交換位置
- 如果需要升序排列,則返回 a-b
如果需要降序排列,則返回b-a
</pre>
<script type="text/javascript">
    console.log("第078");
    
    var arr781 = [1,2,3]
    var arr782 = [4,5,6]
    var arr783 = [7,8,9]
    var result781 = arr781.concat(arr782,arr783,10,11,12)
    var result782 = arr781.join("*")
    var result783 = arr781.reverse()
    console.log( result781 )
    console.log( result782 )
    console.log( result783 )
    console.log( arr781 )
    console.log( result783 	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.屬性選擇器: [id=test] {…} 選擇id=test字元串的元素 [id*=test] {…} 選擇id存在test字元串的元素 [id^=test] {…} 選擇id 以test字元串開頭的元素 [id$=test] {…} 選擇id以test結尾的元素 2.偽類選擇器、偽元素: p: ...
  • 由於後端返回的html代碼中所有標簽前後都有反斜杠“\”,且有\uxxxx形式的十六進位unicode編碼,如果直接把所有反斜杠替換為%,則會把標簽前後的反斜杠一併替換,導致最後無法轉義,所以先把十六進位開頭的\u替換為%u,則可以使用unescape轉碼,然後再單獨把反斜杠替換為空返回即可。這裡使 ...
  • Node類型 nodeType以下是一些重要的nodeType的取值:1: 元素element2: 屬性attr3: 文本text8: 註釋comments9: 文檔document nodeName,nodeValue 節點關係 childNodes: 每個節點都有一個childNodes屬性,其 ...
  • 由於最近沒有什麼項目可做,所以學習了react框架,這裡只是作為自己的筆記作為以後參考,如果要學習還是去官網去學習比較好一些。 首先ES6肯定是要有一定的使用基礎的,現在大多都是基於es6來開發。 babel 由於現在ES6對瀏覽器的支持還不是那麼好,所以babel就應運而生了,它的主要作用就是把E ...
  • Thymeleaf是什麼? Thymeleaf是適用於Web和獨立環境的現代伺服器端Java模板引擎。相比於JSP,Thymeleaf更簡潔,渲染性能更好,維護性更好,它可以XML/XHTML/HTML5, JavaScript, CSS ,甚至文本文件,避免了JSP頁面代碼與Java代碼混合的情況 ...
  • (冰雪林中著此身,不同桃李混芳塵) 用js實現簡單的倒計時結束頁面跳轉效果,主要用到setInterval()和clearInterval()方法,頁面跳轉使用window.location.href = " "。倒計時結束後在當前頁面進行跳轉。 效果圖: 代碼: ...
  • 本次練習錯誤總結: 1. for迴圈要套到按鈕的onclick裡面,否則onclick點擊事件無法依次執行。 2. var n1, var n2 這兩個變數是arr.sort排序使用的,所以應該放在sort() 函數裡面。 3.arr.sort(function (li1,li2) 這個排序函數的l ...
  • 一、安裝node 打開cmd輸入node -v查看是否安裝成功 顯示node版本號表示安裝成功,顯示‘node’不是內部或外部命令表示未安裝node。node安裝地址:http://nodejs.cn/download/註 :安裝 vue-cli 腳手架目前需要node版本為 v4.0 以上。 二、 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...