1 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
第一個(gè) if 語(yǔ)句:
if (amount < 0) { return caesar(str, amount + 26) }
通過(guò)調(diào)用自身來(lái)確保移位量為 0 及以上,直到達(dá)到 0 為止。然后下面的行循環(huán)遍歷整個(gè)字符串中的所有字符。
for (var i = 0; i < str.length; i++) {
對(duì)于每個(gè)字符,它使用一種稱為正則表達(dá)式的東西檢查它是否是一個(gè)字母(谷歌了解更多信息)
if (c.match(/[a-z]/i)) {
線路
var code = str.charCodeAt(i);
獲取表示字符串中位置“i”處的字符的數(shù)字。數(shù)字是計(jì)算機(jī)表示字母和其他字符的方式。大寫和小寫字符有兩個(gè)完全不同的數(shù)字與之關(guān)聯(lián)。這就是下面兩個(gè) if 語(yǔ)句的用途。我將解釋小寫字母的情況,您應(yīng)該也能看到大寫字母的工作原理。
c = String.fromCharCode(((code - 65 + amount) % 26) + 65);
首先從數(shù)字中減去 65。這是因?yàn)榈谝粋€(gè)小寫字母“a”的值為 65。之后它將結(jié)果移動(dòng)“amount”。% 符號(hào)可能看起來(lái)很奇怪。但它所做的只是將兩側(cè)相除并返回“其余部分”,即剩余數(shù)。例如如果我們寫:
5 % 2
它等于 1。這樣做是為了“循環(huán)”數(shù)字并將其保持在 0 到 26 之間。之后,它加回 65 并將數(shù)字轉(zhuǎn)回字符。最后一行:
output += c;
將字符添加到結(jié)果字符串中。希望這對(duì)您有所幫助!
添加回答
舉報(bào)