Der Plus-Operator ist in JavaScript überladen. Er dient zur Addition von Float-Zahlen und zum Verbinden von Zeichenketten. Und weil das noch nicht Verwirrung genug ist, nimmt sich JavaScript auch noch die Freiheit die Typen der Argumente anzupassen, wenn sie nicht übereinstimmen. Was nicht passt, wird passend gemacht. Die Regeln, nach denen das funktioniert, kann sich kein Mensch merken. Ich würde die Verkettung und die Addition nicht miteinander in einem Term vermischen, sondern die Verkettung durch Template-Literale ersetzen. Das macht den Code auch gleich besser lesbar:
var startNum = 1;
var str1 = `${startNum}, ${startNum + 1}, ${startNum + 2},`;