事情的起因是因為我看到了這段code想要理解下方這段程式碼:

但我發現我自己已經忘記我當初為什麼裡面要帶0了

這個問題看mdn後馬上被秒解了 =>

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

附可複製貼上的程式碼:

1
2
3
4
5
6
7
8

export function caesarcipher(n, s){
let code = s.charCodeAt(0) - 97;
let newCode = (code + n) % 26;

return String.fromCharCode(newCode + 97;
}

結論

裡面是放index的意思
所以原理是這樣

假如我今天字串是”abc”

那麼charCodeAt(0) 抓取到的值就想是a 答案會是97
那麼charCodeAt(1) 抓取到的值就想是b 答案會是98
那麼charCodeAt(2) 抓取到的值就想是c 答案會是99