ПРЕДПОЧИТАЮ ■ 1 1 Ш® с А и » 1 Э яЕЖ^Л < я кН На ^^ттят ИЙ^0М8 / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek 
ПРЕДПОЧИТАЮ
■ 1 1	Ш® с	А и » 1 Э	яЕЖ^Л
< я	кН		
			
			
			
			
			
			На
^^ттят		
ИЙ^0М86211		
•V"ж	и,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Подробнее
ПРЕДПОЧИТАЮ ■ 1 1 Ш® с А и » 1 Э яЕЖ^Л < я кН На ^^ттят ИЙ^0М86211 •V"ж и
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
Шутейка норм , картинка хуета
Сайт норм, твой коммент говно.
Просто манкикодеры не в курсе что по умолчанию JS использует лексикографическую сортировку для данного метода и что в качестве аргумента можно передать функцию которая и будет определять порядок сортировки.

Но хейтить JS, это ж не спецификацию изучить....
Avogadro Avogadro 16.06.201914:08 ответить ссылка 2.7
не хейтить жс и потом сидеть и жаловаться хуле хром жрёт оперативку
это норма!
Как бы в нормальных языках программирования базовые типы сортируются как нужно: Числа по возрастанию, а буквы по алфавиту.
В JS нетипизированные массивы, потому по-умолчанию все элементы приводятся к строке в момент сравнения.
ex1st ex1st 16.06.201914:19 ответить ссылка 0.8
Ну и...? Объясни почему я должен это считать за преимущество, а не упущение в архитектуре? В C# давно тоже были списки нетипизированные, но через пару лет ввели дженерики.
а кто сказал что это преимущество?
Ну типа ex1st, говорит, что говно не может быть говном, если там описано в стандартах.
На дворе 2019 год. Почему нельзя запилить нормальную сортировку и уйти от спорных решений?
Они вон нормальное наследование только в 2015 году добавили...
Оно не отличается ничем от того наследования, которое присутствовал раньше.
Ramlz Ramlz 16.06.201915:13 ответить ссылка 0.1
За кулисами может быть, но теперь не нужно трахаться с дополнительными действиями.
Это все равно, что сказать "А зачем в ООП языках наследования, ведь в ассемблере один и тот же код!"
Потому что поведение одно - захреначь ты туда строку, число или чёрта в ступе. Его просто нужно знать(прочитав доку по методу).
В этом изначальная суть js: срать на типы - полная свобода (говно)кода.
Тебе может это не нравиться, тебе может даже это быть отвратительно, но это чувство свободы - именно то самое "преимущество" о котором ты спрашиваешь.
То, что ты пытаешься приплести дженерики и снова свести всё к ручной типизаци - явно показывает, что ты не улавливаешь этой самой "изначальной сути" js.

Конечно я бы добавил в современный js и дженерики и типизацию - но исключительно опционально, чтоб не заниматься онанизмом типоблудием там где это не нужно.
Пока же можно юзать typescript.
AjiTae AjiTae 16.06.201919:23 ответить ссылка 2.1
Хз. Этот JavaScript позволяет такой отборочный говно-код делать и говяные практики не присекаются на стороне самого языка.
Да почти все языки с динамической типизацией позволяют так делать. Именно поэтому код на них, как правило, раз в пять короче и читабельнее.
Hellsy Hellsy 16.06.201920:49 ответить ссылка 2.0
В JS нет стандарта на алгоритм сортировки, потому результаты могут отличаться в разных движках (или даже их версиях).

https://v8.dev/blog/array-sort
https://github.com/nodejs/node/issues/27871
ex1st ex1st 16.06.201914:18 ответить ссылка -0.4
в V8 (первый линк) - прямо на писано: "The “default” comparison function calls toString on both values and does a lexicographical comparison on the string representations."

по второму линку, проблема в конкретной версии (а точнее в ее авторах), стандарт четно прописывает:
- отрицательное значение, если второй аргумент больше первого;
- 0 - если равны;
- положительное, если первый аргумент больше второго.

Это проблема не языка, а разработчика.

Разные компиляторы С/С++ по разному считают выражение (++i + ++i), но почему-то С/С++ не хейтится, а возводится в идеал
Avogadro Avogadro 16.06.201914:38 ответить ссылка -0.4
Ну так-то в С/С++ это неопределенное поведение и прямо говорится, что нужно избегать таких конструкций.
Я не спорю и не хейтю, я лишь указал, что для Array.prototype.sort нет стандарта на алгоритм сортировки, потому Quick Sort и Stable Sort по разному ставят элементы при одинаковых результатах сравнения. Мой посыл неправильно поняли.
ex1st ex1st 16.06.201914:50 ответить ссылка -0.9
Ну а в чем проблема его ввести? На дворе 2019 год и веб наконец-то более менее был стандартизирован благодаря тому, что почти все используют один и тот же движок. Обратная совместимость? Так введите ключевое слово 'USE Legacy', чтобы не сломать старый код.
> потому Quick Sort и Stable Sort по разному
Стабильная сортировка - это не название алгоритма сортировки. Это его свойство. Ваша фраза означает приблизительно следующее:
Фрукты бывают яблоки и красные.

Quick Sort может быть и стабильным, и нестабильным, зависимо от реализации.
И да, спецификация не гарантирует, что в языке будет использоваться стабильный алгоритм сортировки.
Кстати, так же она не гарантирует сохранность порядка ключей в хеше
Ну потому что кто на полном серьёзе будет так делать? А вот сортировка нужна всем
Чувак, UB никак не регламентируется.
Разница с С/С++ в том, что (по теме сортировки) есть библиотеки, которые гарантируют (или нет) результат.
Boost к примеру тебе даст выбор, а ты думай - быстрее или точно.
А в JS такого выбора нет, как браузер решил - так будет.
Вот где жопа.
А ты думал почему все хейтят JS?
Ну так укажи compareFunction и все браузеры будут сортировать именно так, как ты решил.
Hellsy Hellsy 16.06.201920:51 ответить ссылка 1.2
Умный? Суть в том, что сишка результатом имеет машинный код до клиента, как бы что кодер решил (ядро ОС, к примеру), я JS - джит решает, и каждый браузер сам думает... Ты явно тупой.
Еще раз, для джунов. Читай медленно: ты можешь явно задать функцию сравнения. Сравнения функцию. Явно. Для сортировки. Можешь задать. Ты. И она будет одинаково работать на всех браузерах. И сортировать будет одинаково.

Если ты не задаешь функцию - ты сталкиваешься с умолчаниями, которые могут отличаться.

P.S.: А чего ты тогда не гонишь заодно на Яву и вообще все языки-интерпретаторы? Там нет "машинного кода до клиента".
Hellsy Hellsy 19.06.201919:17 ответить ссылка 0.9
о, Ливадийский дворец
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
//
h i .........................i...................i
0	0.2	0.4	0.6	0.8	1.
Q2 (GeV2)