Immagino che certi browser usano keyCode, altri which e forse altri tutti e due.
Per var keyCode =event.keyCode ||event.which;
Se keyCode torna null e which un valore non nullo allora il risultato è il valore non nullo. E vice versa.