Когда ты думаешь, что хуже быть не может, javascript выдает это / javascript :: it-юмор :: js :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

javascript it-юмор geek js 

Когда ты думаешь, что хуже быть не может, javascript выдает это

> [6,	-2, ly
<• Array (4) [
> I
-7].sort()
-2, -7, 2, 6 ],javascript,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,js
Подробнее
> [6, -2, ly <• Array (4) [ > I -7].sort() -2, -7, 2, 6 ]
javascript,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,js
Еще на тему
Развернуть
Немного профессионального юмора.
https://www.destroyallsoftware.com/talks/wat
И из-за чего всё напутано?
Если ф-ция сортировки не задана то элементы массива преобразуются в строку и сортируются в порядке их следования в таблице Unicode.
Пиздец.
Нет, пиздец это когда понимаешь что в legacy коде вот на таком построена тонна логики и тебе надо заменить все такие странные вызовы на нормальные либы :)
AshB AshB 17.10.201800:36 ответить ссылка 2.9
Но корни пиздеца всё равно в языке. :-)
Ну на самом деле, как по мне, JS самый крутой язык (на уровне с python), позволяющий посать что угодно, быстро менять объекты и функции на лету и иметь огромную управляемость процесса выполнения кода в вебе. И за последние 3 года разработки на нём я наткнулся баги в своем коде из-за похожей херни всего 2 раза. Так что не думаю что это так страшно. Те же указатели на массивы указателей в С++ и метапрограммирование в сях меня куда больше вымораживает.
AshB AshB 17.10.201800:49 ответить ссылка -4.5
"на уровне с python"
Который, замечу, не конвертирует типы на ровном месте.

Но да, на фоне других проблем (включая проблемы других языков), пожалуй, мелочи.
питон даже хуже, особенно в питон не хватает == и ===. и еще коллбэков. много много коллбэков
Метапрограммирование и шаблонная магия - это в сторону как раз-таки С++, а не сей.
А указатели на массивы указателей - ближе как раз-таки к сям. В плюсах есть ссылки, (и умные указатели). Вообще рекомендуется по-минимуму использовать сырые указатели. Хотя правила вывода типо для ссылок, всякие l-, r-, x- итп -value тот еще пиздец. Но он придуман не просто так, чтобы ухудшить жизнь разработчика, а наоборот.
lvalue
rvalue
xvalue
prvalue
В JS метод Array.sort() строки сортирует лексикографически, а всё, что не строки - приводит к строкам и сортирует лексикографически (это интуитивно ожидаемая сортировка строк, напр. ["афанасий", "дупло", "дуплоёб", "карасик"]). По этой же причине порядок будет [1, 12, 234, 31, 7]. Это очень тупо и почти никогда не нужно, но это легаси.
yozh yozh 16.10.201823:47 ответить ссылка 2.6
Ну вы же понимаете что на одном корабле не может двух капитанов. Всё решит смертельная схватка. Можете начинать
в украинском, беларусском и многих европейских языках приходится сортировать по своему "алфавиту", а не по юникоду: і, ї, є, ґ располагаются после буквы я, как и всякие умляуты...
пробелы
>	let arr = [6,-2,2,7] <• undefined
>	arr
<• ► (4) [6, -2, 2, 7]
>	arr.sort()
<• ► (4) [-2, 2, 6, 7]
sky_drums sky_drums 16.10.201823:24 ответить ссылка -4.7
хотя если по-другому задать, то опять напутано выходит..
-7
функция сортирует в алфавитном порядке
> l'-', 1,	-1].sorti);
<• ► (4) Г ", -1,	1]
> I
[6, -2, 2, -7].sort(function(a,b){return a-b;});
AntiUser AntiUser 16.10.201823:26 ответить ссылка 0.2
тогда уж
[6, -2, 2, -7].sort((a,b) => a - b);
m1n0s m1n0s 17.10.201810:53 ответить ссылка 0.4
ох уж это ваше новомодное хипстерское... А мы все по старинке ;)
"ES2015" - "новомодное"
m1n0s m1n0s 18.10.201810:47 ответить ссылка 0.0
Добавлю
> [1, 2, 11, 10, 3, 21, 35, 4].sort() • ► (8) [1, 10, 11, 2, 21, 3, 35, 4]
Из за пробелов js интерпретатор может думать что это строка и сортировать массив чисел как массив строк, всего-то делов
m_slick m_slick 16.10.201823:40 ответить ссылка 1.1
Но ведь господь бог дал нам кавычки. Я непонимать. У меня нежная с++ психика.
Ваш бог был недальновиден и не понимал истинного значения хаоса, пока из глубин бездны не поднялся настоящий повелитель хаоса, лорд JS.
AshB AshB 17.10.201800:39 ответить ссылка 0.7
Только безумный бог будет своих детей учить работать в хаосе. Лишь четкая последовательность действий и строгая дисциплина смогут спасти этот мир.
Ничего он не думает, для литералов строк есть свои конструкции, просто по дефолту он приводит содержимое масива к строкам.
Ramlz Ramlz 16.10.201823:44 ответить ссылка 1.4
вот пробелы тут совершенно не причём. JS интерпретатор считает строками только то, что в кавычках, одинарных кавычках или ещё там одних спецкавычках. А это числа, что легко проверяется функцией typeof: typeof [6, -2, 2, -7][2] => "number"
Из за таких сюрпризов придумали TypeScript
3avaScript...
CONSOLE.LOG(FALSE == '0'); CONSOLE. LOG(NULL == UNDEFINED);
>TRUE TRUE
■1 < NUMBER.MIN VALUE
...буду проституткой
Не поможет.
TypeScript
Share
Options
Run
JavaScript
Select...
1	let 1: number[] = [-2, -7, 2, 7];
2	console.log(l.sort());|
1	van 1 = [-2, -7, 2, 7];
2	console.log(l.sort());
3
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Jk.	Gender	Ratii
	undefined	
	male	
	female	
m	male e* \
; -s Tomasz is building cloudash.dev 1d
^ npm install esllnt-conflg-airbnb
'••'.K r
Q 31 tn 683	5 023 ¿j ‘3’-’1’=
Traceback (most recent call last) File "<pyshell#2>"1 line 1, in <mo •3-T
TypeError: unsupported operand type(s) for 'str' and s «Джаваскрипт был придуман в 1995» Программисты в 1994: javascript раз| javascript Разнорабочий
javascript Разработчик
javascript Раздача листовок
javascript Разнорабочий вахта
javascript Развитие бизнеса
javascript Развитие сети
* javascript Развитие розничной сети
javascript Раздатчик листовок
javascript Разнорабочий на стройку
javascript Раз
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор javascript js работа

javascript раз| javascript Разнорабочий javascript Разработчик javascript Раздача листовок javascript Разнорабочий вахта javascript Развитие бизнеса javascript Развитие сети * javascript Развитие розничной сети javascript Раздатчик листовок javascript Разнорабочий на стройку javascript Раз