面試中不要在字符串截取方法上”萎了”

字符串是一種包裝對象類型然走,只要引用了其方法或?qū)傩远Γ琂avaScript就會將字符串值val通過調(diào)用new String(val)的方法轉(zhuǎn)換城對象民泵,那么這個對象繼承了字符串的方法跷乐,一旦方法使用結(jié)束之后屠橄,這個新創(chuàng)建的對象就會被銷毀兔魂;

一 slice 方法

  • str.slice(strat, end);
    起始下標(biāo) <= 截取的范圍 < 結(jié)束下標(biāo)
    包括起始下標(biāo)對應(yīng)的字符烤芦,but不包括
    結(jié)束下標(biāo);
1. 當(dāng)只傳一個參數(shù)的時候:默認為start
var str = 'hello world'; 
str.slice(2);  // llo world

截取的字符串為:start <= 截取范圍 < str.length

   當(dāng)參數(shù)是負數(shù)的時候
var str = 'hello world'; 
str.slice(-2);  // ld

結(jié)果為:反向下標(biāo)截取
反向的下標(biāo) <= 截取范圍 < str.length
當(dāng)反向下標(biāo)的絕對值大于或等于字符串長度析校,則會置為0

 2. 當(dāng)傳兩個參數(shù)的時候
    var str = 'hello world'; 
    str.slice(2,7);  // llo w

截取的字符串為:start <= 截取范圍 < end

      當(dāng)參數(shù)是負數(shù)的時候
var str = 'hello world'; 
str.slice(-5,9);  // wor

截取從反向下標(biāo)到設(shè)置的結(jié)束下標(biāo)的位置构罗,如果設(shè)置的結(jié)束下標(biāo)的位置在開始下標(biāo)的前面,會截取出空

var str = 'hello world'; 
str.slice(-3,5);  // 

二 substring方法

  • str.substring(start, end);
    起始下標(biāo) <= 截取的范圍 < 結(jié)束下標(biāo)
    包括起始下標(biāo)對應(yīng)字符智玻,but不包括結(jié)束下標(biāo)绰播;
 1.當(dāng)只傳一個參數(shù)的時候:默認為start
var str = 'hello world'; 
str.substring(2);  // llo world

截取的字符串為: start<= 截取范圍 < str.length

當(dāng)參數(shù)為負數(shù)時
// 例子:
var str = 'hello world'; 
str.substring(-2);  // hello world

負數(shù)的起始值置0

2.當(dāng)傳兩個參數(shù)的時候
var str = 'hello world'; 
str.substring(2,7);  // llo w

var str = 'hello world'; 
str.substring(2,-5);  // he

當(dāng)結(jié)束下標(biāo)為負數(shù)則置為0,然后與起始下標(biāo)互換位置尚困,起始下標(biāo)正數(shù)搖身一變成為了結(jié)束下標(biāo)蠢箩,截取的方向依然從左往右;
截取的字符串為: start <= 截取范圍 < end

三 substr 方法

  • str.substr(start, end);
    起始下標(biāo) <= 截取的范圍 <= 自定義截取的長度
    substr方法更直接(直接定義長度)事甜;
 1.當(dāng)只傳一個參數(shù)的時候:默認為start
var str = 'hello world'; 
console.log(str.substr(2));  // llo world

var str = 'hello world'; 
console.log(str.substr(-2));  // ld

和前面一樣谬泌,從反向下標(biāo)開始截取到字符串結(jié)尾
截取的字符串為: start <= 截取范圍 < str.length

2.當(dāng)傳兩個參數(shù)的時候
var str = 'hello world'; 
console.log(str.substr(2,3));  // llo

var str = 'hello world'; 
console.log(str.substr(-2,5));  // ld
console.log(str.substr(-9,5));  // llo w

截取的字符串為: start <= 截取范圍 <= 自定義截取的長度
第二個參數(shù)是要截取的長度,所以不可以是負數(shù)逻谦;
當(dāng)截取的長度設(shè)置為0或者是負數(shù)的時候則返回空字符串掌实;

總結(jié):
  1. Slice
    a) 注意截取順序: 從左至右
    b) 結(jié)束下標(biāo)出現(xiàn)在起始下標(biāo)左側(cè)則返回空字符串
  2. Substring
    a) 負數(shù)下標(biāo)會置零,
    b) start為正數(shù)邦马,end為負數(shù)贱鼻,end置零后會與start互換位置
  3. Substr
    a) 長度不能為負數(shù)
    b) Start可為負數(shù),可參考slice方法start為負數(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滋将,一起剝皮案震驚了整個濱河市邻悬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌随闽,老刑警劉巖父丰,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掘宪,居然都是意外死亡蛾扇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門魏滚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镀首,“玉大人,你說我怎么就攤上這事鼠次「澹” “怎么了靖秩?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長竖瘾。 經(jīng)常有香客問我沟突,道長,這世上最難降的妖魔是什么捕传? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任惠拭,我火速辦了婚禮,結(jié)果婚禮上庸论,老公的妹妹穿的比我還像新娘职辅。我一直安慰自己,他們只是感情好聂示,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布域携。 她就那樣靜靜地躺著,像睡著了一般鱼喉。 火紅的嫁衣襯著肌膚如雪秀鞭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天扛禽,我揣著相機與錄音锋边,去河邊找鬼。 笑死编曼,一個胖子當(dāng)著我的面吹牛豆巨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掐场,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼往扔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了熊户?” 一聲冷哼從身側(cè)響起萍膛,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎敏弃,沒想到半個月后卦羡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體噪馏,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡麦到,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了欠肾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓶颠。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刺桃,靈堂內(nèi)的尸體忽然破棺而出粹淋,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布桃移,位于F島的核電站屋匕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏借杰。R本人自食惡果不足惜过吻,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔗衡。 院中可真熱鬧纤虽,春花似錦、人聲如沸绞惦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽济蝉。三九已至杰刽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間王滤,已是汗流浹背专缠。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淑仆,地道東北人涝婉。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蔗怠,于是被迫代替她去往敵國和親墩弯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

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