eval выполняет текст как команду.
try нужен на случай, если пользователь введёт ошибочную строку. В этом случае начинает выполняться код из блока catch.
if(isNaN(+res)) res = errMsg;
Пробуем перевести результат вычисления в число (это делает плюс), затем, если вместо числа получили NaN (Not a Number), в результат кладём сообщение об ошибке.
gid("result").value = res;
Отображаем в поле результата результат.