Пояснение
По правилам JavaScript разделителем целой и дробной части десятичного числа является точка. JavaScript был созданом в США Бренданом Эйхом, а в англоязычных странах в качестве десятичного разделителя используется точка, хотя в большинстве остальных стран используется запятая.
Если вы подумали на седьмую строку, то там запятая является оператором "запятая". У этого оператора очень низкий приоритет (равен 1), он ниже даже оператора присвоения, т.е. символа "равно", у которого приоритет равен 3.
В седьмой строке x
получил значение 2! А потом после присвоения значение вернулось число 41, которое никак не использовалось далее.
Кстати, вот такая запись выдаст ошибку:
let m = 5, 6;
А такая нет:
let m;
m = 5, 6; // m - 5
И такая нет:
let m = (5, 6); // m - 6
Почему при let m = 5, 6;
возникает ошибка?
let - это не оператор, а инструкция. В ней запятые являются частью синтаксиса записи, а не операторами "запятая". Т.е. интерпретатор думает, что после запятой идёт имя ещё одной переменной, но имя не может начинаться с цифры и возникает ошибка.
Браузер на базе Chromium в этом случае пишет:
Uncaught SyntaxError: Unexpected number
А FireFox пишет:
Uncaught SyntaxError: missing variable name
Кстати, оператор запятая не является малополезным оператором. Его можно использовать, например, внутри тернарного оператора, чтобы запустить несколько функций:
// игрок потерял жизнь
noLives ? (saveHighScore(), gameOver()) : (lives--, continueGame());