Татарин>> Просто JS оказался плохо задуман, и некоторые последствия "фигак-фигак и в продакшн" (или как сча модно это называть, аджайл-программировани) обошлись всему миру очень дорого. ГОРАЗДО дороже, чем несколько человеко-месяцев хорошего программиста, который мог бы быть потрачен на первую спецификацию.
Bredonosec> А можно какой-нибудь пример для большей очевидности мысли?
Можно пару сотен примеров... просто задолбаюсь.
Нажми в Хроме Ф12 и введи последовательно:
3.14 % 5
и
13.14 % 5
И нет, это не глюк и не проблема конкретно Хрома. Это так задуман язык, и в некоторой степени тут есть логика. Теперь попробуй отгадать, какая?
Или вот "упражнение 138": var a = [-1, -10, -0.0001, 0.0000000001, 1, 10], что будет если сказать a.sort()? Вопрос со звёздочкой: какая логика стоИт за этим?
А она, как тот суслик, есть.
Такого я могу понаписать много. Где-то даже видел целые коллекции от людей, которые не понимают логику ЯС и относятся к нему как к очередному языку, который следует привычной логике и здравому смыслу. Нет, логика в ЯС действительно есть. Всё это объяснимо. Всё. Кроме одного: ЗАЧЕМ?! Зачем нужно было изначально мешать кислое с г**ном, если изначально нужно было чуть солёное? ЯС по-своему логичен, но, блин, ЗАЧЕМ он логичен именно по-своему?
...
И заметь, я не говорю про очевидные проблемы (ну или проблемы, которые хотя бы можно ожидать) скриптового языка типа
var a = "1";
a += 1;
это, можно сказать, вполне очевидно. Но вот скажи мне результат ещё одной строки добавленой к предыдущему
без использования консоли
a -= 1;
Если смог предсказать и ответить, почему, - ну, ты понял логику ЯС. Но к чему тогда были вопросы?