To tzw. operator rest. Poczytaj na:
http://exploringjs.com/es6/ch_core-features.html#sec_from-arguments-to-rest
Zbiera on elementy w tablicę, w tym wypadku oznacza to, że do funkcji doMath możesz przekazać (jak do każdej funkcji) dowolną liczbę argumentów, i pierwszy z nich przypisze ona do zmiennej strings, a wszystkie następne zbierze w tablicę values.
Na przykład:
function fn( str, ...args ) {
console.log( str, args );
}
fn( 5 ); //5 []
fn( 'text' ); //text []
fn( 'text', 1, 2, 3 ); //text [1, 2, 3]
fn( 'text', 'a', 'b' ); //text ["a", "b"]
Pierwszy argument mamy w zmiennej str, a wszystkie kolejne są ładowane w jedną tablicę. Jest to pełnoprawna tablica z Array.prototype, więc masz wszystkie metody. Jest to znacznie lepsze niż stosowanie dawnego arguments, czyli listy argumentów funkcji (co było pseudotablicą).