Ersetzt wird duch "typ1=" gefolgt von der um 1 erhöhten Zahl, die immer noch als String(!) in
m[1]
steht. Dazu wird sie in eine Ganzzahl umgewandelt (http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=parseInt()), erhöht und wieder in einen String umgewandelt (http://de.selfhtml.org/javascript/objekte/number.htm#to_string@title=toString()), der an "typ1=" angehängt wird (http://de.selfhtml.org/javascript/objekte/string.htm#concat@title=concat()).
Den Sinn von "Stringliteral".concat(String) werde ich nie verstehen, wo es doch das einfachere »+« zur Verkettung von Strings gibt.
(toString() ist auch unnötig, denn wenn man Numberwert + Stringwert notiert, kommt immer ein Stringwert heraus. Aber explizite Typenumwandlung schadet natürlich nicht, vor allem wenn einem diese Regeln noch nicht selbstverständlich im Hinterkopf liegen.)
Mathias