Ну вот и выросло новое поколение JS-ников. Ладно, объясню на пальцах, что ли. Мне-то всё равно, но Вам полезно. :)Так вот, все эти примеры были в начале нулевых тем, что сильно удивляло программистов, переходящих в веб с других языков. Именно перешедшие в JS из других областей больше всего с него и плевались по простой причине: методологии и именования, принятые в других языках, в JS сделаны шиворот-навыворот. И посему ещё в начале нулевых эти люди (теперь уже либо большие профессионалы в этой области), обильно шутили о новом "популярном языке".
Но вот взять parseInt: почему он принимает ещё и базу? В других языках функция с аналогичным названием парсит десятеричные числа, а для других баз существуют отдельные функции.
Взять map: почему по доке он должен принимать функцию от трёх аргументов, когда во всех языках принимает унарную?
Или почему не делается разницы для map и mapi, где вторая функция как раз и добавляет возможность передать индекс текущего элемента, как это сделано в других языках?
Или почему во время вызова функции, переданной в map, не проверяется её арность? В доке же написано, что функция должна быть тренарная, почему же map принимает функцию одного-двух аргументов и даже выполняется как-то вместо того, чтобы бросать исключение, или возращать какой-нибудь маркер ошибки, или просто завершать работу интерпретатора?
Отдельная песня -- это гремучая сместь нестрогой типизации с неявным приведением типов. Очень легко представить себе функцию, которая выдирает число из какого-нибудь элемента DOM, а возвращаемое значение null использует в качестве маркера, чтобы обозначить, что элемент DOM не найден. В этом случае неявное приведение типа сыграет очень злую шутку. А ведь такое запросто случится: заложится как-то один программист, что этот элемент всегда присутствует, опустит проверку на null. Через год он будет модифицировать другой участок кода и элемент пропадёт. И начнутся удивительные по своей природе баги. И такое происходит сплошь и рядом. Не надо думать, что вы-то особенные, что вы-то все-все-все проверки напишете. Наступит час, когда вы будете уставшими, или (что гораздо чаще) дедлайн на носу будет. И вы ошибётесь. А дебаг этой проблемы превратится в сущий ад.
Вот такие вопросы и возникают, когда программисты со стороны смотрят на JS. То, что всё это прописано в документации, это конечно замечательно... Вот только нельзя же по каждому чиху в документацию смотреть. Нельзя же помнить все её талмуды наизусть. Из-за этого хорошие программисты с широким кругозором и опытом в других языках не идут в JS. Из-за этого большинство JS-ников являются молодыми программистами, которые в продакшене ничего, кроме JS не видели толком.
Вы -- новое поколение JS-ников. Вам кажется, что всё вышеописанное -- нормально. Но для программистов из других областей всё это выглядит как шутка юмора такая.
Вы -- новое поколение JS-ников. Вам стоит посмотреть вокруг, и понять, что чуток самокритики вам не повредит. Вот Vkni ниже совершенно верно замечает в #115: "кругозор от Эдиты Пьехи до ..."