Zacznijmy od tego, że to nie liczba, tylko tekst. Liczby od miejsc dziesiętnych oddziela się kropką w JS, nie przecinkiem. Tutaj po prostu sklejasz trzy rzeczy w jeden string: zmienną a o wartości 12 (a czemu - to @Boshi dobrze wyjaśnił) i zmienną b o wartości 5 wsadzając przecinek między nie.
W JS operator + jest prymarnie operatorem łączenia ciągów tekstowych, nie dodawania. Zatem jeśli do liczby dodasz jakikolwiek tekst (w tym wypadku przecinek) zacznie się ona zachowywać jako tekst (dojdzie do niejawnej koercji typów).