Алексей Тен, Ваше реплика натолкнула на предположение: когда js получает строку, он надеется на ее стандартное форматирование и когда эта надежда рушится, он впадает в глубокое разочарование вместо того, чтобы попробовать преобразовать строку в число.
Эта формулировка показалась удачным ответом на ваш вопрос: "Javascript is a dynamically typed language. Basically this means that variables don’t have types, values do. So when a variable is used, JS has to check what type its value is, and then figure out if that type needs to be cast to some other type." Отсюда взято.