<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] ## 概述 ### 定義 字符串就是若干個排在一起的字符,放在單引號或雙引號之中。 ~~~ 'abc' "abc" ~~~ 單引號字符串的內部,可以使用雙引號;雙引號字符串的內部,可以使用單引號。 ~~~ 'key="value"' "It's a long journey" ~~~ 如果要在單引號字符串的內部,使用單引號(或者在雙引號字符串的內部,使用雙引號),就必須在內部的單引號(或者雙引號)前面加上反斜杠,用來轉義。 ~~~ 'Did she say \'Hello\'?' "Did she say \"Hello\"?" ~~~ 字符串默認只能寫在一行內,分成多行將會報錯。 ~~~ 'a b c' // SyntaxError: Unexpected token ILLEGAL ~~~ 上面代碼將一個字符串分成三行,JavaScript就會報錯。 如果長字符串必須分成多行,可以在每一行的尾部使用反斜杠。 ~~~ var longString = "Long \ long \ long \ string"; longString // "Long long long string" ~~~ 上面代碼表示,加了反斜杠以后,原來寫在一行的字符串,可以分成多行,效果與寫在同一行完全一樣。 但是,這種寫法有兩個注意點,首先,它是ECMAScript 5新添加的,老式瀏覽器(如IE 8)不支持,其次,反斜杠的后面必須是換行符,而不能有其他字符(比如空格),否則會報錯。 連接運算符(+)可以連接多個單行字符串,用來模擬多行字符串。 ~~~ var longString = "Long " + "long " + "long " + "string"; ~~~ 另外,有一種利用多行注釋,生成多行字符串的變通方法。 ~~~ (function () { /* line 1 line 2 line 3 */}).toString().split('\n').slice(1,-1).join('\n') // "line 1 // line 2 // line 3" ~~~ ### 轉義 反斜杠在字符串內有特殊含義,用來表示一些特殊字符,所以又稱為轉義符。 需要用反斜杠轉義的特殊字符,主要有下面這些: * \0 代表沒有內容的字符(\u0000) * \b 后退鍵(\u0008) * \f 換頁符(\u000C) * \n 換行符(\u000A) * \r 回車鍵(\u000D) * \t 制表符(\u0009) * \v 垂直制表符(\u000B) * \' 單引號(\u0027) * \" 雙引號(\u0022) * \\ 反斜杠(\u005C) * \XXX 用三位八進制數(0到377)代表一些特殊符號,比如\251表示版權符號。 * \xXX 用兩位十六進制數(00到FF)代表一些特殊符號,比如\xA9表示版權符號。 * \uXXXX 用四位十六進制的Unicode編號代表某個字符,比如\u00A9表示版權符號。 下面是最后三種字符的特殊寫法的例子。 ~~~ "\251" // "?" "\xA9" // "?" "\u00A9" // "?" ~~~ 如果非特殊字符前面使用反斜杠,則反斜杠會被省略。 ~~~ "\a" // "a" ~~~ 上面代碼表示a是一個正常字符,前面加反斜杠沒有特殊含義,則反斜杠會被自動省略。 如果字符串的正常內容之中,需要包含反斜杠,則反斜杠前需要再加一個反斜杠,用來對自身轉義。 ~~~ "Prev \\ Next" // "Prev \ Next" ~~~ ### 字符串與數組 字符串可以被視為字符數組,因此可以使用數組的方括號運算符,用來返回某個位置的字符(從0開始)。 ~~~ var s = 'hello'; s[0] // "h" s[1] // "e" s[4] // "o" // 也可以直接對字符串使用方括號運算符 'hello'[1] // "e" ~~~ 如果方括號中的數字超過字符串的范圍,或者方括號中根本不是數字,則返回undefined。 ~~~ 'abc'[3] // undefined 'abc'[-1] // undefined 'abc'["x"] // undefined ~~~ 但是,字符串與數組的相似性僅此而已。實際上,字符串是類似數組的對象,且無法改變字符串之中的單個字符。 ~~~ var s = 'hello'; delete s[0]; s // "hello" s[1] = 'a'; s // "hello" s[5] = '!'; s // "hello" ~~~ 上面代碼表示,字符串內部的單個字符無法改變和增刪,這些操作會默默地失敗。 length屬性返回字符串的長度,該屬性也是無法改變的。 ~~~ var s = 'hello'; s.length // 5 s.length = 3; s.length // 5 s.length = 7; s.length // 5 ~~~ 上面代碼表示字符串的length屬性無法改變,但是不會報錯。 字符串也無法添加新屬性。 ~~~ var s = "Hello World"; s.x = 123; s.x // undefined ~~~ 上面代碼為字符串s添加了一個x屬性,結果無效,總是返回undefined。 上面這些行為的原因是,在JavaScript內部,變量s其實指向字符串“Hello World”的地址,而“Hello World”本身是一個常量,所以無法改變它,既不能新增,也不能刪除。另一方面,當一個字符串被調用屬性時,它會自動轉為String對象的實例(參見《標準庫》一章),調用結束后,該對象自動銷毀。這意味著,下一次調用字符串的屬性時,實際是調用一個臨時生成的新對象,而不是上一次調用時生成的那個對象,所以取不到賦值在上一個對象的屬性。如果想要為字符串添加屬性,只有在它的原型對象String.prototype上定義(參見《面向對象編程》一章)。 ## 字符集 JavaScript使用Unicode字符集,也就是說在JavaScript內部,所有字符都用Unicode表示。ECMAScript 3要求使用Unicode 2.1或以上版本,ECMAScript 5則要求使用Unicode 3及以上版本。 不僅JavaScript內部使用Unicode儲存字符,而且還可以直接在程序中使用Unicode,所有字符都可以寫成"\uxxxx"的形式,其中xxxx代表該字符的Unicode編碼。比如,\u00A9代表版權符號。 ~~~ var s = '\u00A9'; s // "?" ~~~ 每個字符在JavaScript內部都是以16位(即2個字節)的UTF-16格式儲存。也就是說,JavaScript的單位字符長度固定為2個字節。 但是需要注意的是,UTF-16有兩種長度:對于U+0000到U+FFFF之間的字符,長度為16位(即2個字節);對于U+10000到U+10FFFF之間的字符,長度為32位(即4個字節),而且前兩個字節在0xD800到0xDBFF之間,后兩個字節在0xDC00到0xDFFF之間。舉例來說,U+1D306對應的字符為
                  <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>

                              哎呀哎呀视频在线观看