3 回答

TA貢獻(xiàn)151條經(jīng)驗(yàn) 獲得超48個贊
slice()切割數(shù)組和字符串時(shí)候,有兩個參數(shù)。
第一個參數(shù)是從哪里切割開始,如果是正數(shù),則從前往后數(shù),如果是負(fù)數(shù),則從后往前數(shù)。這個參數(shù)必須寫。
第二個參數(shù)是切割到哪里,如果是正數(shù),則從前往后數(shù),如果是負(fù)數(shù),則從后往前數(shù)。這個參數(shù)是可選的,就是說可寫可不寫,不寫的話默認(rèn)切割到最大值。
有些特例,類似你這個5,明顯大于字符串字?jǐn)?shù),所以默認(rèn)是切割到最后。所以最后輸出的是‘老師’,而不是你寫的‘老’。
如果你想切割出來一個‘老’,alert(str.slice(-2,3));
然后還有個特例,就是第二個參數(shù)指向在第一個參數(shù)的前面,這個時(shí)候默認(rèn)切割的是空的。
我用大白話說的,我想你認(rèn)真讀一下,再試一下,應(yīng)該就會了。

TA貢獻(xiàn)39條經(jīng)驗(yàn) 獲得超13個贊
str.slice(beginSlice[,?endSlice])
參數(shù)
beginSlice
從該索引(以 0 為基數(shù))處開始提取原字符串中的字符。如果值為負(fù)數(shù),會被當(dāng)做?
sourceLength + beginSlice
?看待,這里的sourceLength 是字符串的長度
?(例如,?如果beginSlice
?是?-3 則看作是:?sourceLength - 3
)endSlice
可選。在該索引(以 0 為基數(shù))處結(jié)束提取字符串。如果省略該參數(shù),
slice
會一直提取到字符串末尾。如果該參數(shù)為負(fù)數(shù),則被看作是 sourceLength + endSlice,這里的 sourceLength 就是字符串的長度(例如,如果 endSlice 是 -3,則是, sourceLength - 3)。
描述
slice()
?從一個字符串中提取字符串并返回新字符串。在一個字符串中的改變不會影響另一個字符串。也就是說,slice
?不修改原字符串,只會返回一個包含了原字符串中部分字符的新字符串。
注意:slice()
?提取的新字符串包括beginSlice
但不包括?endSlice。
例1:str.slice(1, 4)
?提取新字符串從第二個字符到第四個?(字符索引值為?1, 2, 和?3)。
例2:str.slice(2, -1)
?提取第三個字符到倒數(shù)第二個字符。
例子
使用?slice()
?創(chuàng)建一個新的字符串
下面例子使用?slice()
?來創(chuàng)建新字符串:
var?str1?=?'The?morning?is?upon?us.'; var?str2?=?str1.slice(4,?-2); console.log(str2);?//?OUTPUT:?morning?is?upon?u
給?slice()
?傳入負(fù)值索引
下面的例子在?slice()
?使用了負(fù)值索引:
var?str?=?'The?morning?is?upon?us.'; str.slice(-3);?????//?returns?'us.' str.slice(-3,?-1);?//?returns?'us' str.slice(0,?-1);??//?returns?'The?morning?is?upon?us'
添加回答
舉報(bào)