String與String對(duì)象

字符串就是零個(gè)或多個(gè)排在一起的字符趴酣,放在單引號(hào)或雙引號(hào)之中威兜。

"abc"
'abc'

單引號(hào)字符串的內(nèi)部,可以使用雙引號(hào)喂窟。雙引號(hào)字符串的內(nèi)部测暗,可以使用單引號(hào)。

"It's a long journey"
'key = "value"'

如果長(zhǎng)字符串必須分成多行磨澡,可以在每一行的尾部使用反斜杠碗啄。

var longString = "Long \
long \
long \
string";

加了反斜杠以后,原來寫在一行的字符串稳摄,可以分成多行書寫稚字。但是輸出的時(shí)候還是單行,效果與寫在同一行完全一樣。注意胆描,反斜杠的后面必須是換行符瘫想,而不能有其他字符(比如空格),否則會(huì)報(bào)錯(cuò)昌讲。

轉(zhuǎn)義:

如果要在單引號(hào)字符串的內(nèi)部国夜,使用單引號(hào)(或者在雙引號(hào)字符串的內(nèi)部,使用雙引號(hào))短绸,就必須在內(nèi)部的單引號(hào)(或者雙引號(hào))前面加上反斜杠车吹,用來轉(zhuǎn)義。

'Did she say \'Hello\'?'
// "Did she say 'Hello'?"

需要用反斜杠轉(zhuǎn)義的特殊字符醋闭,主要有下面這些:

\0 null(\u0000)
\b 后退鍵(\u0008)
\f 換頁符(\u000C)
\n 換行符(\u000A)
\r 回車鍵(\u000D)
\t 制表符(\u0009)
\v 垂直制表符(\u000B)
\' 單引號(hào)(\u0027)
\" 雙引號(hào)(\u0022)
\ 反斜杠(\u005C)

任何字符串的長(zhǎng)度都可以通過訪問其 length 屬性獲得窄驹,例如:

var myStr = 'the quick brown fox jumps over the lazy dog';
console.log(myStr.length)  //43

轉(zhuǎn)換為字符串:

toString方法:
數(shù)值、布爾值证逻、對(duì)象和字符串值都有toString()方法乐埠。但null和undefined值沒有這種方法。故在不知道要轉(zhuǎn)型的值是不是null或undefined的情況下瑟曲,可用轉(zhuǎn)型函數(shù)String()饮戳,這個(gè)函數(shù)可以將任何類型的值轉(zhuǎn)換為字符串。

alert(10.toString()); //"10"
alert(10.toString(2));  //"1010" //2進(jìn)制
alert(10.toString(8)); //"12"  //8進(jìn)制
String(null);  //"null"
var a;
String(a);  // "undefined"
String(true)  //"true"

String對(duì)象:

三種基本構(gòu)造函數(shù)之一洞拨,用String構(gòu)造函數(shù)來創(chuàng)建扯罐。

var stringObject = new String("hello world")
typeof stringObject   //"object"

1.charAt()用于訪問字符串中特定字符的方法:

var stringValue = "hello world"
alert(stringValue.charAt(1));  //"e"

此方法完全可以用數(shù)組下標(biāo)替代。
'abc'[1] // "b"

2.String.fromCharCode()是一個(gè)靜態(tài)方法烦衣。該方法的參數(shù)是一系列Unicode碼點(diǎn)歹河,返回對(duì)應(yīng)的字符串。與之相對(duì)的是charCodeAt()方法花吟,返回給定位置字符的Unicode碼點(diǎn)秸歧。

String.fromCharCode(104, 101, 108, 108, 111);  // "hello"
'abc'.charCodeAt(1)   // 98

3.concat()方法用于將一個(gè)或多個(gè)字符串拼接起來,返回一個(gè)新字符串衅澈。

var myString = "hello";
console.log(myString.concat(" world"))   //"hello world"
console.log(myString.concat(" world","!"));   //"hello world!"

4.slice(),substr(),substring()三個(gè)方法是基于子字符串創(chuàng)建新字符串的方法键菱。slice()和substr()的第一個(gè)參數(shù)是子字符串的開始位置,第二個(gè)參數(shù)是子字符串的結(jié)束位置(不含該位置)今布。而substring()的第二個(gè)參數(shù)是反回的字符個(gè)數(shù)经备。

var myString = "hello world";
console.log(myString.slice(3));  //"lo world"
console.log(myString.substring(3));  //"lo world"
console.log(myString.sustr(3));  //"lo world"
console.log(myString.slice(3,7));  //"lo w"
console.log(myString.substring(3,7));  //"lo w"
console.log(myString.substr(3,7));  //"lo worl"

如果傳遞參數(shù)為負(fù)值時(shí),三個(gè)方法的行為則不盡相同部默。slice()方法將兩個(gè)負(fù)參數(shù)都與字符串的長(zhǎng)度相加侵蒙;substring()將兩個(gè)負(fù)參數(shù)都轉(zhuǎn)換為0;而substr()將第一個(gè)負(fù)參數(shù)與字符串長(zhǎng)度相加傅蹂,將第二個(gè)負(fù)參數(shù)轉(zhuǎn)換為0纷闺。

var myString = "hello world";
console.log(myString.slice(-3));  //"rld"
console.log(myString.substring(-3));  //"rld"
console.log(myString.substr(-3));  //"hello world"
console.log(myString.slice(3,-4));  //"lo w"
console.log(myString.substring(3,-4));  //"hel"
console.log(myString.substr(3,-4));  //""空字符串

5.indexOf()與lastIndexOf()

這兩個(gè)方法用于確定一個(gè)字符串在另一個(gè)字符串中的位置算凿,都返回一個(gè)整數(shù),表示匹配開始的位置犁功。如果返回-1氓轰,就表示不匹配。兩者的區(qū)別在于浸卦,indexOf從字符串頭部開始匹配戒努,lastIndexOf從尾部開始匹配。它們還可以接受第二個(gè)參數(shù)镐躲,對(duì)于indexOf方法,第二個(gè)參數(shù)表示從該位置開始向后匹配侍筛;對(duì)于lastIndexOf萤皂,第二個(gè)參數(shù)表示從該位置起向前匹配。

var myString = "hello world";
console.log(myString.indexOf("o"));  //"4"
console.log(myString.lastIndexOf("o"));  //"7"
console.log(myString.indexOf("o",6));  //"7"
console.log(myString.lastIndexOf("o",6));  //"4"

6.trim()方法用于去除字符串兩端的空格匣椰,返回一個(gè)新字符串裆熙,該方法去除的不僅是空格,還包括制表符(\t禽笑、\v)入录、換行符(\n)和回車符(\r)。

'  hello world  '.trim()   // "hello world"
'\r\nabc \t'.trim()   // 'abc'

7.toLowerCase()方法用于將一個(gè)字符串全部轉(zhuǎn)為小寫佳镜,toUpperCase()則是全部轉(zhuǎn)為大寫僚稿。它們都返回一個(gè)新字符串,不改變?cè)址吧臁_@個(gè)方法也可以將布爾值或數(shù)組轉(zhuǎn)為大寫字符串蚀同,但是需要通過call方法使用。

var myString = "Hello World";
console.log(myString.toLowerCase());  //"hello world"
console.log(myString.toUpperCase());  //"HELLO WORLD"
console.log(myString.toUpperCase.call(true));  //"TRUE"
console.log(myString.toLowerCase.call(['A','B','c']));  //"a,b,c"

8.split()方法按照指定規(guī)則分割字符串啊掏,返回一個(gè)由分割出來的子字符串組成的數(shù)組蠢络。

split方法還可以接受第二個(gè)參數(shù),限定返回?cái)?shù)組的最大成員數(shù)迟蜜。

'a|b|c'.split('|')   // ["a", "b", "c"]
'a|b|c'.split('|', 2) // ["a", "b"]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刹孔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子娜睛,更是在濱河造成了極大的恐慌髓霞,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件微姊,死亡現(xiàn)場(chǎng)離奇詭異酸茴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)兢交,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門薪捍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事酪穿〉矢桑” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵被济,是天一觀的道長(zhǎng)救赐。 經(jīng)常有香客問我,道長(zhǎng)只磷,這世上最難降的妖魔是什么经磅? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮钮追,結(jié)果婚禮上预厌,老公的妹妹穿的比我還像新娘。我一直安慰自己元媚,他們只是感情好轧叽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刊棕,像睡著了一般炭晒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甥角,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天网严,我揣著相機(jī)與錄音,去河邊找鬼嗤无。 笑死屿笼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翁巍。 我是一名探鬼主播驴一,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼灶壶!你這毒婦竟也來了肝断?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤驰凛,失蹤者是張志新(化名)和其女友劉穎胸懈,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恰响,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趣钱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胚宦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片首有。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡燕垃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出井联,到底是詐尸還是另有隱情卜壕,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布烙常,位于F島的核電站轴捎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蚕脏。R本人自食惡果不足惜侦副,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驼鞭。 院中可真熱鬧跃洛,春花似錦、人聲如沸终议。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽额湘。三九已至些楣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雏婶。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罚屋,地道東北人鸡捐。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像户辫,于是被迫代替她去往敵國(guó)和親渐夸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,233評(píng)論 0 4
  • 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的 JavaScript 類型 使用基本類型和基本包裝類型 引用類型的...
    悶油瓶小張閱讀 681評(píng)論 0 0
  • 最近開始接觸《論語》。聽于丹講過奥额,聽樊登講過苫幢,可是自己卻沒有真正看過,說來好笑垫挨,一直自詡為喜歡閱讀韩肝,竟然沒有讀過...
    光澤叔叔閱讀 2,445評(píng)論 0 2
  • 隨著現(xiàn)在人們生活水平的提高哀峻,對(duì)飲食健康的關(guān)注程度也越來越高涡相,很多的健康養(yǎng)生節(jié)目也因此火了起來,這對(duì)于那些養(yǎng)生朋友來...
    3f17274cd933閱讀 262評(píng)論 0 0
  • 第一次遇見溫衡便被她溫潤(rùn)的氣質(zhì)吸引生逸,不似其它小說中的女主角光芒萬丈或者個(gè)性飛揚(yáng)。她是那個(gè)江南小水龜且预,溫溫和和槽袄,不吵...
    夏眠fairy閱讀 4,966評(píng)論 4 6