Авраам,
Оператор "^" - побитовое исключающее или. А ошибка в названиях переменных.
string_1 = "= ,,!=c?Rdd!hu;=.c?!y,y5j2q,q544v1se!,,?";
string_2 = "";
for (j = 0; j< string_1.length; j++) {
string_2 = string_2 + String.fromCharCode (string_1.charCodeAt(j) ^ 1);
};
alert(string_2);
Вот эта конструкция
String.fromCharCode (string_1.charCodeAt(j) ^ 1) берет
код определенного символа строки
string_1, смещает его (через побитовое иск. или) и создает из полученного кода новый символ. Остальные места рассматривать думаю смысла нет.