Js-字元串

来源:https://www.cnblogs.com/tomomo/archive/2022/08/27/16567259.html
-Advertisement-
Play Games

字元串 字元串 字元串也是一個數據結構,將同樣的內容串在一塊。因為在對應的js裡面字元串屬於一個值類型(值類型是常量 常量是不能變)。字元串是不能改變的。結合數據結構裡面串也是一個存儲結構,作為存儲結構增刪改查的方法(字元串的增刪改查 不能針對於本身 而是返回一個新的字元串) 字元串的聲明 1.值類 ...


字元串

字元串

字元串也是一個數據結構,將同樣的內容串在一塊。因為在對應的js裡面字元串屬於一個值類型(值類型是常量 常量是不能變)。字元串是不能改變的。結合數據結構裡面串也是一個存儲結構,作為存儲結構增刪改查的方法(字元串的增刪改查 不能針對於本身 而是返回一個新的字元串)

字元串的聲明

1.值類型賦值

  

var str = "hello world"

 

2.以new關鍵詞聲明(引用了對應的值的地址)

var str = new String("abc"); //引用了空值的地址

 

ES6新增 字元串模板
var a = 'jack'
var str = `hello string ${a}` //esc下麵的這個鍵 解析${} 以變數來解析
console.log(str); //hello string jack

 

new String() 和 String() 區別
  • new String是構建一個String對象 (引用數據類型 有地址指向的)

  • String 單純的將對應的傳進入的參數轉為string類型(值類型)

字元串的屬性

length屬性 返回字元串的長度(包含空格及換行)

var str = 'a b'
console.log(str.length)//3

 

通過下標來獲取對應的字元串

var str = 'abc'
console.log(str[0]) //a

 

字元串的方法(返回新的字元串)

通過下標找字元串(char 字元)

charAt(下標)

var str = 'abc'
str.charAt(0) //返回的是a

 

charCodeAt (ACSII碼)

var str = 'abc'
str.charCodeAt(0) //返回的是97

 

通過字元串找下標(找不到返回-1 找的到返回對應的下標值 number(第一次出現的))

indexOf

var str = 'abc'
console.log(str.indexOf('ab')) //返回的下標0
console.log(str.indexOf('d')) //找不到返回-1
//可以有倆個參數 第一個參數為 對應需要查詢的字元串  第二個參數為 開始查找的下標
console.log(str.indexOf('b',2)) //從下標2開始找 找第一個出現b的位置 返回-1
var str = 'abbbccde'
console.log(str.indexOf('b',2)) //從下標2開始找 找第一個出現b的位置 2

 

lastIndexOf

console.log(str.lastIndexOf('b')) //3
console.log(str.lastIndexOf('b',0)) //-1 從0的位置往前找
console.log(str.lastIndexOf('b',4)) //3
//也就是說預設的情況下 對應的後面的下標可以省略 str.length-1

 

自定義函數實現對應的indexOf方法及對應的lastIndexOf方法

//實現一下對應的indexOf方法
var searchStr = "abcdefabcde"
function indexOf(str,index){
    if(!index){ //當前如果是undefined的值
        index = 0 //預設為0
    }
    //得到str的長度
    var len = str.length
    //這個5是表示當前的字元串的總長度
    for(var i=index;i<searchStr.length-len;i++){
        var s = ''
        for(var j=0;j<len;j++){
            s+=searchStr[i+j]
        }
        if(s==str){
            return i
        }
    }
    return -1
}
function lastIndexOf(str,index){
    if(!index && index!=0){ //當前如果是undefined的值 或者不為0
        index = searchStr.length-1 //預設為最後一個
    }
    //得到str的長度
    var len = str.length
    //這個5是表示當前的字元串的總長度
    for(var i=index;i>=len;i--){
        var s = ''
        for(var j=len-1;j>=0;j--){
            s+=searchStr[i-j]
        }
        if(s==str){
            return i
        }
    }
    return -1
}

 

search 方法(和indexOf一樣 支持正則表達式)

var str = 'abc'
console.log(str.search(/ab/)) //0 /ab/正則表達式
console.log(str.search(/ab/,0)) //從0的位置開始找 匹配ab的內容

 

靜態方法(通過構造方法名直接調用的叫做靜態方法 他是對應的static修飾的)

fromCharCode 將對應的ascii碼轉為字元串

var str = String.fromCharCode(97) //返回的是一個字元串
console.log(str) //a

 

concat 將多個字元串轉為連接成一個字元串返回
var str = 'hello'.concat('world')
console.log(str)//hello world

 

支持正則的方法(4個)

search 查找(找到返回下標 沒找到返回-1)

replace 替換 (將找到的第一個字元串替換成一個新的字元串)

var str = 'abca'
var str1 = str.replace('a','hello')//將a替換成hello
console.log(str1)

 

split 分割(返回數組)

//分割 成為一個數組 split  數組變成字元串 join (預設以,)
var str = '1,2,3'
//預設不是以,作為分割 預設不分割 直接填入到數組
console.log(str.split()); //['1,2,3']
console.log(str.split(',')); //['1','2','3']

 

match 匹配(返回數組)

//match 返回一個數組 (匹配的內容)
var str = "abcacc"
//預設只找第一個匹配的 加入到數組
var arr = str.match('a')
console.log(arr);

 

截取的方法

substring(開始的下標,結束的下標)

substr(開始的下標,個數)

//截取的方法 substring substr 
var str = "abcdef"
//substring(開始的下標,結束的下標) 不包含結束的下標
console.log(str.substring(1));//bcdef
console.log(str.substring(1,3));//截取不包含最後一個下標 (預設不填str.length)bc
// substr(開始的下標,截取的個數)
console.log(str.substr(1));//預設的情況是截取到最後 bcdef
console.log(str.substr(1,3));//從下標1開始截取 截取個數為3個 bcd

 

轉大寫 (toUpperCase)
var str = 'abcA'
console.log(str.toUpperCase())

 

轉小寫 (toLowercase)
var str = 'abcA'
console.log(str.toLowerCase())

 

總結

  • string是不能改變的(常量)

  • string的方法返回的都是一個新的字元串

  • string的length屬性是只讀的(不能賦值)讀取對應的字元串的長度

  • 字元串可以通過下標進行訪問(string[i])

  • 字元串方法 charAt charCodeAt

  • 搜索 indexOf lastIndexOf search

  • 支持正則的方法 search replace split match

  • 截取的方法 substring substr

  • 轉大寫和小寫 toUpperCase和 toLowerCase

  • 靜態方法 fromCharCode 根據ascii轉為字元串

Math類(數學類 一起和數學計算相關的方法都在這個裡面且這個方法都是靜態方法)

屬性

PI 3.1415926

E 科學計演算法

方法

random 隨機數

round 四捨五入

floor 向下取整

ceil 向上取整

pow 取冪次方

sqrt 開平方

abs 取絕對值

max 最大值

min 最小值

....


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

-Advertisement-
Play Games
更多相關文章
  • JDBC 一、JDBC概述 什麼是JDBC? **JDBC 是使用 Java 語言操作關係型資料庫的一套 API。**這套 API 是交由不同的資料庫廠商實現的。我們利用 JDBC 編寫操作資料庫的代碼,真正執行的是各個資料庫的實現類(驅動)。 全稱:(Java DataBase Connectiv ...
  • 1.MySQL中執行一條SQL的總體流程 2.SQL函數執行過程 1.MySQL中執行一條SQL的總體流程 一條包含函數的SQL語句,在mysql中會經過: 客戶端發送,伺服器連接,語法解析,語句執行的過程。 調試源碼,分析函數的具體執行過程,在客戶端,執行select to_char(‘test’ ...
  • 概述 Redis 在 3.0 之後開始支持 Cluster(集群)模式,特點如下: 支持節點的自動發現:可向集群動態添加節點,並自動融入 支持 slave-master 選舉和容錯:多個 master 宕機後,選舉出新的 master 繼續工作 線上分片:當有新的節點加入時,為新節點分配 slot ...
  • 摘要:今天給大家帶來一篇MySQL資料庫崩潰的修複案例 本文分享自華為雲社區《記一次MySQL崩潰修複案例,再也不用刪庫跑路了》,作者: 冰 河。 問題描述 研究MySQL源代碼,調試並壓測MySQL源代碼時,MySQL崩潰了!問題是它竟然崩潰了!而且還損壞了InnoDB文件!!還好是在調試環境下發 ...
  • 如何去掉vue的url地址中的#號?及其原理? 點擊打開視頻講解更加詳細 如何去掉vue的url地址中的#號? import Vue from 'vue'; import VueRouter from 'vue-router'; Vue.use(VueRouter) // 1. 定義一些路由 // ...
  • ##Query 是一個 JavaScript 函數庫。 jQuery 是一個輕量級的"寫的少,做的多"的 JavaScript 庫。 jQuery 庫包含以下功能: HTML 元素選取 HTML 元素操作 CSS 操作 HTML 事件函數 JavaScript 特效和動畫 HTML DOM 遍歷和修 ...
  • 1、axios的二次封裝 BiliBili作者原地址,多多支持 npm i axios //下載axios 首先創建兩個文件夾在src目錄下;api和config 先在config文件夾下建立一個index.js;具體代碼如下 export default{ baseUrl:{ dev: "http ...
  • 對象及日期定時器 Date日期 日期對象的定義(使用new關鍵詞) 1.獲取當前的時間(本地的時間) var date = new Date() //不傳參就是獲取當前時間 2.獲取指定的時間 var date = new Date(123456) //一個參數毫秒值 將這個毫秒值去加上對應的197 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...