for(var i = 0; i < encodedMessage.length; i++ ) {
Если элемент encodedMessage со смещением превышает длину массива символов
if((encodedMessage[i] + shift) > symbols.length) {
То symbolIndex будет равен разности encodedMessage и symbols.length
var symbolIndex = encodedMessage[(i + shift) - symbols.length];
} else {
Либо же элементу encodedMessage со смещением на shift
symbolIndex = encodedMessage[i + shift];
}
Далее склеивается сообщение из символов.
var symbol = symbols[symbolIndex];
decodedMessage += symbol;
}