<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # **String:字符串類型** String類型用于表示由零或多個16位Unicode字符組成的字符序列,即字符串 。 <br> ## **1、存儲結構** &emsp;&emsp;由于計算機只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。在計算機中,1個字節(byte)由 8個比特(bit)組成,所以 1 個字節能表示的最大整數就是 255,如果想表示更大整數,就必須用更多的字節,比如 2 個字節可以表示的最大整數為 65535 。最早,只有 127 個字符被編碼到計算機里,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為?ASCII編碼,比如大寫字母 A 的編碼是 65,小寫字母 z 的編碼是122。 &emsp;&emsp;但如果要表示中文字符,顯然一個字節是不夠的,至少需要兩個字節。所以,中國制定了 GB2312 編碼,用來表示中文字符。基于同樣的原因,各個國家都制定了自己的編碼規則 。這樣就會出現一個問題,即在多語言混合的文本中,不同的編碼會出現沖突,導致亂碼出現 。 &emsp;&emsp;為了解決這個問題,Unicode 編碼應運而生,它把所有的語言都統一到一套編碼中,采用 2 個字節表示一個字符,即最多可以表示 65535 個字符,這樣基本上可以覆蓋世界上常用的文字,如果要表示更多的文字,也可以采用 4 個字節進行編碼,這是一種通用的編碼規范 。 &emsp;&emsp;因此,JavaScript 中的字符也采用 Unicode 來編碼 ,也就是說,JavaScript 中的英文字符和中文字符都會占用 2 個字節的空間大小 ,這種多字節字符,通常被稱為寬字符。 <br> ## **2、基本包裝類型** &emsp;&emsp;在 JavaScript 中,字符串是基本數據類型,本身不存任何操作方法 。為了方便的對字符串進行操作,ECMAScript 提供了一個基本包裝類型:String 對象 。它是一種特殊的引用類型,JS引擎每當讀取一個字符串的時候,就會在內部創建一個對應的 String 對象,該對象提供了很多操作字符的方法,這就是為什么能對字符串調用方法的原因 。 ``` 12var name ='JavaScript'; var value = name.substr(2,1); ``` &emsp;&emsp;當第二行代碼訪問變量 str 時,訪問過程處于一種讀取模式,也就是要從內存中讀取這個字符串的值。而在讀取模式中訪問字符串時,引擎內部會自動完成下列處理: * 創建 String 類型的一個實例 * 在實例上調用指定的方法 * 銷毀這個實例 &emsp;&emsp;用偽代碼形象的模擬以上三個步驟: ``` var obj =new String('JavaScript'); var value = obj.substr(2,1); name =null; ``` &emsp;&emsp;可以看出,基本包裝類型是一種特殊的引用類型。它和普通引用類型有一個很重要的區別,就是對象的生存期不同 。使用 new 操作符創建的引用類型的實例,在執行流離開當前作用域之前都一直保存在內存中。而自動創建的基本包裝類型的對象,則只存在于一行代碼的執行瞬間,然后立即被銷毀。在 JavaScript 中,類似的基本包裝類型還有 Number、Boolean 對象 。 <br> ## **3、常用操作方法** 作為字符串的基本包裝類型,String 對象提供了以下幾類方法,用以操作字符串: * 字符操作:charAt,charCodeAt,fromCharCode * 字符串提取:substr,substring ,slice * 位置索引:indexOf ,lastIndexOf * 大小寫轉換:toLowerCase,toUpperCase * 模式匹配:match,search,replace,split * 其他操作:concat,trim,localeCompare &emsp;&emsp;charCodeAt 的作用是獲取字符的 Unicode 編碼,俗稱 “Unicode 碼點”。fromCharCode 是 String 對象上的靜態方法,作用是根據 Unicode 編碼返回對應的字符。 ``` var a ='a'; // 獲取Unicode編碼 var code = a.charCodeAt(0); // 97// 根據Unicode編碼獲取字符 String.fromCharCode(code); // a ``` &emsp;&emsp;通過 charCodeAt 獲取字符的 Unicode 編碼,然后再把這個編碼轉化成二進制,就可以得到該字符的二進制表示。 ``` var a ='a'; var code = a.charCodeAt(0);// 97 code.toString(2);// 1100001 ``` &emsp;&emsp;對于字符串的提取操作,有三個相類似的方法,分別如下: ``` substr(start [, length]) substring(start [, end]) slice(start [, end]) ``` &emsp;&emsp;從定義上看,substring 和 slice 是同類的,參數都是字符串的某個 start 位置到某個 end 位置(但 end 位置的字符不包括在結果中);而 substr 則是字符串的某個 start 位置起,數 length 個長度的字符才結束。二者的共性是:從 start 開始,如果沒有第 2 個參數,都是直到字符串末尾。 &emsp;&emsp;substring 和 slice 的區別則是:slice 可以接受 “負數”,表示從字符串尾部開始計數; 而 substring 則把負數或其它無效的數當作 0。 ``` 'hello world!'.slice(-6, -1)// 'world' 'hello world!'.substring("abc", 5)// 'hello' ``` &emsp;&emsp;substr 的 start 也可接受負數,也表示從字符串尾部計數,這點和 slice 相同;但 substr 的 length 則不能小于 1,否則返回空字符串。   ``` 'hello world!'.substr(-6, 5)// 'world' 'hello world!'.substr(0, -1)// ''
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看