2011-02-25 47 views
2

在這個程序中,我明白(我認爲)paragraph.charAT(0)=「%」檢查段落中的第一個字符是否等於%,即計數從0開始,所以charAT(0)是第一個字符Javascript,這個程序中片段(1)中的1是指什麼?

但是,在行中,paragraph.slice(1),1是指什麼?是否切斷第一個字符?在這種情況下,它將在0位置?

function processParagraph(paragraph) { 
    var header = 0; 
    while (paragraph.charAt(0) == "%") { 
    paragraph = paragraph.slice(1); 
    header++; 
    } 

    return {type: (header == 0 ? "p" : "h" + header), 
      content: paragraph}; 
} 

show(processParagraph(paragraphs[0])); 
+1

請參閱[這裏](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/slice)。 MDC是一個偉大的JavaScript資源。 – aaronasterling 2011-02-25 03:07:48

+0

另請參見[JavaScript中的String.slice和String.substring有什麼區別?](http://stackoverflow.com/questions/2243824/what-is-the-difference-between-string-slice-and-string -substring-in-javascript) – Rudu 2011-02-25 03:14:21

+0

MDC的+1。我經常在Google的查詢中拋出這個問題,所以我得到了Mozilla的東西,而不是一些愚蠢的w3schools鏈接或其他東西。 – jpsimons 2011-02-25 03:29:33

回答

7

它提取從段落字符串的索引1(第2個字符)開始的子字符串。

例如,考慮一下:

var paragraph = "Hi my name is Russell"; 
console.log(paragraph.slice(1)); //returns 'i my name is Russell' 
+0

謝謝@Russell Dias,所以如果段字符串開始「%aaaaa」,在切片(1)之後,段落字符串會啓動「aaaaa」? – mjmitche 2011-02-25 03:08:40

+0

@mjmitche:是的,這是正確的。 – 2011-02-25 03:09:54

+1

@mjm,詳細說明一下,當考慮循環時,代碼作爲整體從段落開始處切下任意數量的百分號。 – 2011-02-25 03:15:19

1

它從字符串刪除第一個字符,並返回該不會改變原始字符串。我建議你看看documentation for slice

1

它割掉的第一個字符(其爲 「%」)

3

.slice

string.slice(beginslice[, endSlice]) 

提取字符串的一部分,並返回一個新的字符串。

它返回第一個字符之後的所有內容,從本質上切斷第一個字符。