最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

JavaScript中的字符串

2023-08-22 09:51 作者:曉楓Motivation  | 我要投稿

在JavaScript中,用于表示文本的類型稱為字符串(String)。字符串是一個(gè)不可變的有序序列,由16位值組成,其中每個(gè)值代表一個(gè)Unicode字符。字符串的length屬性表示它包含的16位值的數(shù)量。JavaScript的字符串(以及數(shù)組)使用從零開始的索引,因此第一個(gè)16位值的索引是0,第二個(gè)值的索引是1,依此類推??兆址拈L度為0。JavaScript沒有單獨(dú)的類型來表示字符串中的單個(gè)字符。要表示一個(gè)16位值,可以使用長度為1的字符串。

1. 字符串字面量。

在JavaScript程序中包含字符串,您可以將它們包含在匹配的單引號(hào)、雙引號(hào)或反引號(hào)(`'")中。雙引號(hào)和反引號(hào)可以出現(xiàn)在由單引號(hào)限定的字符串中,反之亦然。以下是一些字符串字面量的示例:

使用反引號(hào)作為字符串定界符是ES6的一個(gè)功能,允許您在字符串字面量中包含(或插值)JavaScript表達(dá)式。在早期版本的JavaScript中,字符串字面量必須在一行上,而+運(yùn)算符用于將單行字符串連接成更長的字符串。在ES5中,您可以使用反斜杠(\)將單行字符串分成多行。反斜杠和緊隨其后的行終止符不是字符串字面量的一部分。如果需要在單引號(hào)或雙引號(hào)括起的字符串中包含換行符,可以使用字符序列\n。ES6的反引號(hào)語法支持多行字符串,并且行終止符被視為字符串字面量的一部分:

在使用單引號(hào)作為字符串定界符時(shí),您需要注意縮略詞和所有格,例如"can't"中的撇號(hào)。由于撇號(hào)是定界符,必須使用反斜杠字符(\)“轉(zhuǎn)義”字符串中出現(xiàn)的任何撇號(hào)。

在客戶端JavaScript編程中,您的代碼可能包含帶有HTML代碼的字符串,而HTML代碼可能包含JavaScript。與JavaScript類似,HTML使用單引號(hào)或雙引號(hào)作為字符串的定界符。因此,如果需要混合JavaScript和HTML代碼,最好使用不同類型的引號(hào)。在下面的示例中,JavaScript表達(dá)式中的字符串"Thank you"使用單引號(hào),而HTML事件處理程序?qū)傩允褂秒p引號(hào):

(程序員的軟技能:ke.qq.com/course/6034346)

2. 字符串字面量中的轉(zhuǎn)義序列。

在JavaScript字符串中,反斜杠具有特殊作用。它與其后的字符結(jié)合,用于表示字符串中無法直接表示的字符。例如,\n是一個(gè)轉(zhuǎn)義序列,表示換行符。

我們之前提到了另一個(gè)例子:\',它表示單引號(hào)(或撇號(hào))字符。這個(gè)轉(zhuǎn)義序列用于在單引號(hào)字符串中包含撇號(hào)。之所以稱為轉(zhuǎn)義序列,是因?yàn)榉葱备苄薷牧撕竺孀址耐ǔ:x。經(jīng)過轉(zhuǎn)義后,它不再表示字符串的結(jié)尾,而是表示撇號(hào)本身:

以下是JavaScript中的轉(zhuǎn)義序列列表及其表示的字符。有三個(gè)通用的轉(zhuǎn)義序列,可以使用十六進(jìn)制形式的Unicode字符代碼指定任何字符。例如,\xA9表示版權(quán)符號(hào),使用其十六進(jìn)制的Unicode代碼點(diǎn)來指定。同樣,\u03c0表示字符π,而\u{1f600}表示"笑臉"表情符號(hào),使用4位或最多6位十六進(jìn)制代碼點(diǎn)來指定(ES6):

  • 空字符(\u0000):\0

  • 退格(\u0008):\b

  • 水平制表符(\u0009):\t

  • 換行符(\u000A):\n

  • 垂直制表符(\u000B):\v

  • 換頁符(\u000C):\f

  • 回車(\u000D):\r

  • 雙引號(hào)(\u0022):\"

  • 單引號(hào)或撇號(hào)(\u0027):\'

  • 反斜杠(\u005C):\\

  • 由2位十六進(jìn)制數(shù)字nn指定的Unicode字符:\xnn

  • 由4位十六進(jìn)制數(shù)字nnnn指定的Unicode字符:\unnnn

  • 由代碼點(diǎn)n在0和10FFFF之間指定的Unicode字符,使用1到6位十六進(jìn)制數(shù)字(ES6):\u{n}

如果\字符前面的字符不是上述列出的字符之一,反斜杠將被忽略(當(dāng)然,將來的語言版本可能會(huì)定義新的轉(zhuǎn)義序列)。例如,\#等同于#。最后,在ES5中,您可以在換行字符前面放置一個(gè)反斜杠,以將字符串字面量分割成多行。

(程序員的軟技能:ke.qq.com/course/6034346)

3. 使用字符串。

字符串連接是JavaScript的固有特性。如果將+運(yùn)算符與數(shù)字一起使用,數(shù)字將相加。當(dāng)與字符串一起使用時(shí),字符串將被連接在一起(第二個(gè)字符串跟隨在第一個(gè)之后)。例如:

可以使用標(biāo)準(zhǔn)的相等(==)和不相等(!=)運(yùn)算符進(jìn)行字符串比較。只有當(dāng)兩個(gè)字符串具有完全相同的16位值序列時(shí),它們才被認(rèn)為是相等的。還可以使用<=>>=運(yùn)算符進(jìn)行字符串比較,比較是基于它們的16位值的比較。

要確定字符串的長度(即包含的16位值的數(shù)量),可以使用字符串的length屬性:

除了length屬性外,JavaScript還提供了豐富的API來操作字符串:

請(qǐng)記住,JavaScript字符串是不可變的。像replace()toUpperCase()這樣的方法會(huì)返回新的字符串;它們不會(huì)修改調(diào)用它們的原始字符串。字符串也可以像只讀數(shù)組一樣對(duì)待,可以使用方括號(hào)而不是charAt()方法訪問單個(gè)字符(16位值):

(程序員的軟技能:ke.qq.com/course/6034346)

4. 模板字符串。

在ES6及更高版本中,可以使用反引號(hào)來界定字符串字面量:

然而,這不僅僅是新的字符串字面量語法,因?yàn)槟0遄址梢园我獾腏avaScript表達(dá)式。反引號(hào)內(nèi)的字符串字面量的值通過評(píng)估其中包含的所有表達(dá)式來計(jì)算,將這些表達(dá)式的值轉(zhuǎn)換為字符串,然后將這些字符串與反引號(hào)內(nèi)的字面量組合在一起:

${}之間的內(nèi)容被解釋為JavaScript表達(dá)式,而這些花括號(hào)之外的內(nèi)容被視為常規(guī)字符串字面量?;ɡㄌ?hào)內(nèi)的表達(dá)式會(huì)被評(píng)估、轉(zhuǎn)換為字符串,并插入到模板中,替換掉美元符號(hào)、花括號(hào)和其中的所有內(nèi)容。

模板字符串可以包含任意數(shù)量的表達(dá)式、在常規(guī)字符串中可能出現(xiàn)的任何轉(zhuǎn)義字符,并且它們可以跨多行而不需要特殊轉(zhuǎn)義。以下模板字符串包含4個(gè)JavaScript表達(dá)式、1個(gè)Unicode轉(zhuǎn)義序列和至少4個(gè)換行字符(表達(dá)式的值也可以包含換行字符):

第一行末尾的反斜杠會(huì)轉(zhuǎn)義第一個(gè)換行字符,因此結(jié)果字符串的第一個(gè)字符是Unicode字符 ? (\u2718),而不是換行字符。

帶標(biāo)簽的模板字符串。

模板字符串具有強(qiáng)大但不常用的功能:如果在開頭的反引號(hào)之前有一個(gè)函數(shù)名(標(biāo)簽),則文本和模板字符串中的表達(dá)式的值將作為參數(shù)傳遞給該函數(shù)。"標(biāo)記模板字符串"的值是該函數(shù)的返回值。此功能可用于在插入HTML或SQL之前對(duì)文本進(jìn)行轉(zhuǎn)義。

ES6提供了一個(gè)名為String.raw()的內(nèi)置標(biāo)簽函數(shù)。該函數(shù)返回從反引號(hào)中獲取的原始未處理文本,不處理任何反斜杠轉(zhuǎn)義:

請(qǐng)注意,盡管標(biāo)記模板字符串的標(biāo)簽部分是一個(gè)函數(shù),但在調(diào)用它時(shí)沒有括號(hào)。在這個(gè)非常特殊的情況下,反引號(hào)充當(dāng)了開頭和結(jié)尾的括號(hào)。

(程序員的軟技能:ke.qq.com/course/6034346)

5. 模式匹配。

JavaScript定義了一種稱為正則表達(dá)式(或RegExp)的數(shù)據(jù)類型,用于描述和匹配文本中的字符串模式。RegExp并不是JavaScript中的基本類型,但它們具有類似于數(shù)字和字符串的字面語法,有時(shí)會(huì)被視為基本類型。正則表達(dá)式字面量的語法復(fù)雜,它們定義的API也不是很簡單。由于正則表達(dá)式的強(qiáng)大以及它們?cè)谖谋咎幚碇械某R娪猛荆覍⑻峁┮粋€(gè)簡要概述。

一對(duì)斜杠之間的文本構(gòu)成了一個(gè)正則表達(dá)式字面量。在這對(duì)斜杠的第二個(gè)斜杠之后,可以出現(xiàn)一個(gè)或多個(gè)字母,這些字母會(huì)修改模式的含義。例如:

RegExp對(duì)象定義了一些有用的方法,字符串也有一些方法可以接受RegExp參數(shù)。例如:

(程序員的軟技能:ke.qq.com/course/6034346)

JavaScript中的字符串的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
银川市| 海南省| 衡阳市| 武宣县| 宜兴市| 桓台县| 东乌珠穆沁旗| 营山县| 杭锦后旗| 增城市| 夏邑县| 固安县| 鄂托克前旗| 嵊州市| 土默特右旗| 大关县| 乐亭县| 临沭县| 沽源县| 开化县| 武清区| 渭源县| 大新县| 香河县| 武冈市| 大丰市| 米泉市| 永兴县| 普兰店市| 马公市| 汶川县| 惠州市| 大洼县| 北川| 宜兰县| 天等县| 杭锦旗| 阿拉善左旗| 抚远县| 通渭县| 陕西省|