JavaScript的字元串、數組以及DOM操作總結

来源:https://www.cnblogs.com/sungezhouchi/archive/2018/12/30/10198492.html
-Advertisement-
Play Games

(一)JavaScript字元串操作 JavaScript的字元串就是用' '或" "括起來的字元表示,日常的學習中有時候需要對字元串進行相關的操作。例如要獲取字元串某個指定位置的字元,須使用類似Array數組的下標操作,索引號從0開始: JavaScript為字元串提供了一些常用方法,調用這些方法 ...


(一)JavaScript字元串操作

    JavaScript的字元串就是用' '或" "括起來的字元表示,日常的學習中有時候需要對字元串進行相關的操作。例如要獲取字元串某個指定位置的字元,須使用類似Array數組的下標操作,索引號從0開始:

 var str='Hello World!'
  alert(str[0] )  //'H'
  alert(str[6]  ) //'W'
  alert(str[12]  ) //索引超出字元串的範圍,但不會報錯,一律返回undefined

    JavaScript為字元串提供了一些常用方法,調用這些方法不會改變原有字元串的內容,但是會返回一個新的字元串。以下為字元串操作常用的四種方法:

 toUpperCase() 把一個字元串全部變為大寫:

var str='Hello World!';
str.toUpperCase() //返回hello world!

 toLowerCase() 把一個字元串全部變為小寫: 

var str='Hello World!';
str.toLowerCase()  //返回hello world!

    indexOf() 會搜索指定字元串出現的位置

 

var str='Hello World!';
str.indexOf('ello');      //返回1
str.indexOf(' ');         //返回5
str.indexOf('World');  //返回6
str.indexOf('world');  //沒有找到指定字元串,返回-1

    substring() 會返回指定索引區間的子串:

var str='Hello World!';
str.substring(0, 5);  //返回"Hello"
str.substring(2, 8);  //返回"llo Wo"
str.substring(-1);    //返回"Hello World!"
str.substring(-6);    //返回"Hello World!"

(二)JavaScript數組操作

    JavaScript的數組Array可以包含任何數據類型,並通過索引來訪問每個元素。例如要獲得數組Array的長度,可以直接訪問數組Array的length屬性:

var arr=[1,'true',3,4,'false'];
arr.length; //返回5

 若直接給數組Array的length賦予一個新的值會導致數組Array大小的變化:

var arr=[1,'true',3,4,'false'];
arr.length=7;    
alert(arr);      //返回[1,true,3,4,false,,]  
arr.length=3;  
alert(arr);      //返回[1,true,3]

    若數組Array通過索引把對應的元素修改成新的值(包括索引超過了範圍),數組Array也會發生變化:

var arr=[1,'true',3,4,'false'];
arr[1] = 99;
alert(arr);      //arr變為[1, 99, 3,4, 'false']
arr[4] = true;
alert(arr);     //arr變為[1,'true',3,4,'true']

    與字元串一樣,JavaScript也為數組操作提供了一些函數方法。

    indexOf() 與String的類似,搜索一個指定的元素的位置:

var arr = [1, 6, 'hello', null];
arr.indexOf(null);        //返回3
arr.indexOf(6);           //返回1
arr.indexOf('6');         //沒有找到元素'6',返回-1

    slice() 對應String的substring() ,截取數組Array部分元素,返回一個新的數組Array:

var arr = [1, 6, 'hello', null];
arr.slice(0, 2);        //返回[1, 6]
arr.slice(3);           //返回[null]
arr.slice();            //返回[1, 6, 'hello', null]

    push() 往數組Array的末尾添加若幹元素,pop() 則把數組Array的最後一個元素刪除掉:

var arr = [1, 6, 'hello', null];
arr.push(99, 'A');
arr;            //arr變為[1, 6, 'hello, null, 99, 'A']
arr.pop();
arr;            //arr變為[1, 6, 'hello, null, 99]

    unshift() 往數組Array的頭部添加若幹元素,shift() 則把數組Array的第一個元素刪掉:

var arr = [1, 6, 'hello', null];
arr.unshift(99, 'A');
arr;            //arr變為[99, 'A', 1, 6, 'hello, null]
arr.shift();
arr;            //arr變為['A', 1, 6, 'hello, null]

    sort() 是對數組Array的當前元素進行排序,而reverse() 則是顛倒數組Array中元素的順序:

var arr=[1, 'C', 'A', 9];
arr.sort();            //返回[1, 9, "A", "C"]
arr.reverse();         //返回["C", "A", 9, 1]

    splice() 方法是修改數組Array的“萬能方法”,它可以從指定的索引開始刪除若幹元素,然後再從該位置添加若幹元素:

var arr = [1, 6, 'hello', null];
//從索引1開始刪除2個元素,然後再添加2個元素
arr.splice(1, 2, 'A', 99);     //返回刪除的2個元素[6, 'hello']
arr;       //arr變為[1, 'A', 99, null]
arr.splice(2, 1);              //返回從索引2開始刪除的1個元素[99]
arr;       //arr變為[1, 'A', null]

(三)JavaScript Dom基本操作

    DOM(Document Object Model),即文檔對象模型,是針對HTML和XML文檔的一個API(應用程式編程介面)。DOM描繪了一個層次化的節點樹,它允許開發人員添加、移除和修改頁面的某一部分。當我們創建了一個網頁並把它載入到Web瀏覽器上,DOM就在幕後悄然而生,因為它把你所編寫的網頁文檔轉換為一個文檔對象。

  我們可以這麼理解DOM,把DOM看做一棵節點樹,主要由元素節點、屬性節點、文本節點三種節點構成。例如下方的一行HTML代碼,

<p title="reminder">Hello JavaScript</p>

     其中 p 為元素節點,title="reminder" 為屬性節點,Hello JavaScript 為文本節點。

  HTML文檔中每一個元素節點都是一個對象,其中3個獲取特定元素的方法分別是: getElementById、getElementsByTagName 和 getElementsByClassName 方法。當我們得到需要的元素後,就可以獲取它的各個屬性,getAttribute 方法就是用來做這件事的,而 setAttribute 方法則用來更改屬性節點的值。

例如下方的HTML文檔,對其進行JavaScript的 DOM 的5種基本方法操作,如下所示:    

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Mobile phone</title>
        <style type="text/css">
            body {
                color: white;
                background-color: black;
            }
            p {
                color: yellow;
                font-family: "arial", sans-serif;
                font-size: 1.2em;
            }
            #purchases {
                border: 1px solid white;
                background-color: #333;
                color: #ccc;
                padding: 1em;
            }
            #purchase li {
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <h1>What to buy</h1>
        <p title="reminder">Never Settle !!!</p>
        <ul id="purchases">
            <li>HUAWEI</li>
            <li class="sale">OPPO & vivo</li>
            <li class="sale important">mi</li>
        </ul>
    </body>
</html>

    getElementById 方法,返回那個給定 id 屬性值的元素節點對應的對象:

1 <script>
2   alert(typeof document.getElementById("purchases"));      //彈出的對話框顯示object
3 </script>

    getElementsByTagName 方法,返回一個對象數組,每個對象對應著文檔里給定標簽的一個元素:

1 <script>
2     var items = document.getElementsByTagName("li");
3     for(var i = 0; i<items.length; i++){
4        alert(typeof items[i]);    //彈出的對話框顯示object,重覆3次
5     }
6 </script>

    getElementsByClassName 方法,返回一個對象數組,每個對象對應著文檔里給定類名的一個元素:

1 <script>
2     var shopping = document.getElementById("purchases");
3     var sales = shopping.getElementsByClassName("sale");
4     alert(sales.length);    //彈出的對話框顯示2
5 </script>

    getAttribute 方法,獲取元素節點的各個屬性:

1 <script>
2     var paras = document.getElementsByTagName("p")
3     for(var i = 0; i<paras.length; i++){
4         alert(paras[i].getAttribute("title"));      //彈出的對話框顯示reminder
5     }
6 </script>

    setAttribute 方法,對屬性節點的值做出修改:

1 <script>
2    var shopping = document.getElementById("purchases");
3     alert(shopping.getAttribute("title"));     //彈出的對話框顯示null(空的值)
4     shopping.setAttribute("title", "a list of goods");
5     alert(shopping.getAttribute("title"));     //彈出的對話框顯示a list of goods
6 </script>

 


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

-Advertisement-
Play Games
更多相關文章
  • 1、使用索引的已有順序 2、filesort演算法 filesort演算法的執行流程 filesort相關的參數 sort_buffer_size 演算法排序緩衝區的大小,線程級緩存 max_length_for_sort_data 決定選擇那種不同的策略進行排序(兩種排序演算法) 1、two-pass演算法 ...
  • mysql優化–explain分析sql語句執行效率 Explain命令在解決資料庫性能上是第一推薦使用命令,大部分的性能問題可以通過此命令來簡單的解決,Explain可以用來查看SQL語句的執行效 果,可以幫助選擇更好的索引和優化查詢語句,寫出更好的優化語句。 Explain語法:explain ...
  • 正文 之前的博文當中提到備份工具mydumper的使用,而軟體包中還包含了與之對應的恢復工具myloader,本文就總結下myloader的用法。關於mydumper的安裝與使用可以參考之前的博文:[MySQL Backup mydumper][1]。 查看myloader的版本信息: 主要選項 d ...
  • 首先在這裡發發牢騷,指責下那些刻板的書寫方式,不考慮讀者理不理解,感覺就是給專業人員用來複慣用的一樣,沒有前戲,直接就高潮,實在受不了!沒基礎或基礎差的完全不知道發生了什麼,一臉懵逼的看著,一星差評!!! execute immediate 以下引用介紹比較好的例子說明 看了上面的代碼,是否覺得理解 ...
  • 觸發器的基礎知識和例子 :create trigger tr_name on table/view {for | after | instead of } [update][,][insert][,][delete] [with encryption] as {batch | if update ( ...
  • 當前資料庫中創建新的資料庫角色註意事項 角色是資料庫級別的安全對象。 在創建角色後,可以使用 grant、deny 和revoke來配置角色的資料庫級許可權。 若要向資料庫角色添加成員,請使用alter role(Transact-SQL)。 在 sys.database_role_members 和 ...
  • 本文由雲+社區發表 事件匯流排核心邏輯的實現。 <! more EventBus的作用 Android中存在各種通信場景,如 之間的跳轉, 與`Fragment Activity Fragment Activity setResult onActivityResult SimpleEventBus`( ...
  • 1.使用層面的理解 在這裡首先講如何簡單的使用, 僅僅是使用層面(有理解錯誤的地方幫忙糾正), 然後我們在去理解位運算符! 在下麵的圖中我們可以看見枚舉值中有<<(位運算符:左移): 如果我們在枚舉值中看見<<那我們就可以通過|(位運算符:或)進行組合使用如下代碼為例: //隨便添加一個UIText ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...