Не javascript-разработчик javascript-разработчик Javascript ужасен и полон противиречий Сначала в / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek 
Не javascript-разработчик javascript-разработчик
Javascript ужасен и полон противиречий
Сначала выучи его, там все логично
javascript-разработчик
Javascript ужасен и полон противиречий
javascript-разработчик
Это точно,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Подробнее
Не javascript-разработчик javascript-разработчик Javascript ужасен и полон противиречий Сначала выучи его, там все логично javascript-разработчик Javascript ужасен и полон противиречий javascript-разработчик Это точно
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
Комментарии 89 28.05.202011:45 ссылка 106.4
Это точно
sciro sciro 28.05.202011:59 ответить ссылка 8.4
сначала выучи его, там все логично
Neker Neker 28.05.202012:07 ответить ссылка 13.6
Это точно
Ну раз Иисус сказал то это точно...
Батя мир тоже на Javascript написал?
Waver Waver 28.05.202012:59 ответить ссылка 5.6
Ибо сказано: Всё есть объект.
iNji iNji 28.05.202013:00 ответить ссылка 9.3
Ага. 3 foreach и все с разной логикой. Спасибо, Javascript!
Samael28 Samael28 28.05.202012:25 ответить ссылка -0.7
Использовать обычный for религия не позволяет?
for (x in y), for (x of y) или обычный for(i, i
Samael28 Samael28 28.05.202012:37 ответить ссылка -0.9
Один для объектов а другой для массивов
Т.е. какой-то универсально работающий с одинаковым поведением сделать не позволяет религия?
При том, что массив - частный случай объекта в JS
Samael28 Samael28 28.05.202012:57 ответить ссылка -1.6
Используй обычные for/while/do..while, зачем ты лезешь туда, о чем понятия не имеешь?

for..in перебирает объект по ключам
for..of перебирает итерабальные объекты по значению
Тут вопрос не в том, что я лезу туда, куда понятия не имею.
Я к общей неконсистентности поведения языка.

Возьмем тот же питончик. Есть for. Все объекты, у которых есть понятие ключ/значение уже умеют итерироваться. Т.е. не нужно придумывать отдельные языковые конструкции.
Samael28 Samael28 28.05.202013:28 ответить ссылка -2.5
Внимание! Питонист в треде. Повторяю! Питонист в треде! Всем незамедлитено называть массивы "списками" и поправить свои отступы. Повторяю! Питонист в треде! Это не учебная тревога! Питонист в треде!
Я питон тоже не люблю. Но с консистентностью у него хорошо.
Samael28 Samael28 28.05.202013:52 ответить ссылка -1.9
настолько хорошо, что list, это объект, что бы добавить к нему элемент надо дергать метод объекта:
[1, 2, 3].append(4)

А что бы узнать размер листа, надо дергать встроенный метод
len([1, 2, 3]) == 3

Очень консистентно, очень православно, ага. При всех плюсах языка, пресловутая консистентность не одна из них.
Не порть картину. Всегда есть способ написать удобнее.

> [1, 2, 3].append(4)
Это бесмысслено, т.к. результат — None. list — изменяемый объект и к нему логично привязывать новые ссылки если описан в виде переменной. @zloy_holodec, часто в js пишешь `([1, 2, 3]).push(4)`?

> len([1, 2, 3]) == 3
Это верно, т.к. используется общий подход для словарей, списков, кортежей, множеств, а также любых типов у которых определен соответствующий магический метод.

> пресловутая консистентность не одна из них
async и typing'и все ещё болезненные. В остальном — всё неплохо.
TihonV TihonV 29.05.202001:19 ответить ссылка -0.1
Ну и чему же будет равен len от словарика?
Hellsy Hellsy 29.05.202002:16 ответить ссылка -0.9
Количеству ключей.
TihonV TihonV 29.05.202013:14 ответить ссылка 0.4
Потому что новые фичи добавлялись позже, вот так оно и получилось.
Так они и в яваскрипте умеют итерироваться - метод Keys/Values и дальше .forEach, как для любого массива.
Hellsy Hellsy 29.05.202002:08 ответить ссылка 0.0
Да можно и вообще других языков не придумывать
Есть в языках программирования такой прикол - они налагают ограничение на язык, лишают нас хитровыебанных возможностей в угоду читабельности/поддерживаемости (см структурное программирование против гото, объектно-ориентированное, функциональное). ЖС смотрится как говно, на вкус как говно и когда я на нем пишу, у меня такое ощущение, что я сру. Три способа определения функции, три различных фора - все это ведет к изговнянию языка. Хотя в основе тот самый офигенный синтаксис сей
izuverg izuverg 29.05.202011:06 ответить ссылка -1.8
Массивы от объектов не отличаешь? Пойди поучи, без шуток
Как тогда из 5 и 3 получить 8?
C_LEX C_LEX 28.05.202013:02 ответить ссылка -0.1
'5' + 3 -5 -5 -5 -5 -5 -5 -5 -5 -5
Ropto Ropto 28.05.202013:12 ответить ссылка 8.1
Сначала не понял, а потом кааааааак понял!
ты сверхразум
5+3 без кавычек
5*1 + 3*1
Atrium Atrium 28.05.202013:21 ответить ссылка 1.1
+'5' + 3
~~'5' + 3
kain_pl kain_pl 28.05.202014:31 ответить ссылка -1.4
зачем тильды? с ними пятёрка всё равно сначала приводится к числовому типу, а потом тильды применяются, и в этом случае они ничего не сделают:
~~(+'5') + 3
Логика javascript темна и полна ужасов.
Qadrad Qadrad 28.05.202012:15 ответить ссылка 7.2
это точно. например, [] + {} = "[object Object]", a {} + [] = 0
просто "+" в JS хитровыебаннейший оператор, работа которого зависит от первого аргумента.
'1' + 1 === '11' и 1 + '1' === '11'
Ничего не понял, видимо javascript действительно ужасен и полон противоречий
Сначала выучи его, там все логично.

{} + [] => +[], т.к. {} интерпретируется как пустой блок кода, а унарный плюс преобразует пустой массив в 0
[] + {} => "" + {} => "[object Object]", т.к. если один из операндов строка, то второй тоже преобразуется в строку ({}).toString() => "[object Object]"
Avogadro Avogadro 28.05.202012:41 ответить ссылка -0.5
Логично, это когда язык не дает применять опасные type mismatch операции, подобное УГ уже похавали в С\С++, но JS вывел это на новый уровень. В адекватном дизайне языка, например RUST, даже int32 + int64 без явного указания что должно произойти сделать нельзя.
Но ведь неявное приведение типа без потери данных безопасно. Если применение безопасной операции недопустимо, то дизайн языка далёт от идеала.
Вот только так не бывает. Все упирается в то, что разработчик просто человек, а правила приведений быстро становятся сложны и тернисты. В результате на казалось бы банальном сложении можно получить что угодно. Разработчики C, тоже думали, что все у них там безопасно, а потом оказалось, что люди не роботы.
Ты часто пустой литерал объекта с пустым массивом складываешь?

Т.к. если впихнуть [] и {} в переменные, то результат {} + [] и [] + {} идентичен друг-другу и равен "[object Object]"
Avogadro Avogadro 28.05.202013:34 ответить ссылка -0.3
Учитывая, что в JS переменная может сменить свой тип(что почти всегда ошибка в коде, но все же это возможно). Потенциально словить такое поведение можно. Я соглашусь, что это крайне редкий источник багов в JS, но это не значит, что проблемы не очевидных(читай не адекватных), правил приведения типов нет.
>>Логично, это когда язык не дает применять опасные type mismatch операции

К сожалению, это издержки динамических языков. Во всяких макросах и скриптах по другом в принципе тяжело. Для браузеров... млин, вот чего не шарю, того не шарю. Может логичнее было пилить строгую типизацию, нужно создать параллельную вселеную и проверить.
Wolfdp Wolfdp 28.05.202014:09 ответить ссылка 0.8
>> Может логичнее было пилить строгую типизацию, нужно создать параллельную вселеную и проверить.

TypeScript же
wasm
ничто не мешает кинуть ошибку в рантайме.
foo = '1'
bar = 2

print(foo+bar)

В Питоне приводит к эксепшону(увы, не на этапе парсинга), вместо попытки магически сложить строку с числом. В JS код молча сложит эти переменные, что точно так же приведет к багу, но лучше иметь явный стектрейс с эксепшеном, чем ловить undefined behavior и дебажить где именно получилось так, что пользователь на UI увидел какую-то фигню вместо нормально значения.
*молча стоит с плакатом TypeScript - WTF*
Hellsy Hellsy 29.05.202002:30 ответить ссылка 0.0
Для этого и придуман TypeScript, который устраняет проблемы с типизацией.
Hellsy Hellsy 29.05.202002:28 ответить ссылка 0.0
И тут появляется 1сник.
riffraff riffraff 28.05.202012:17 ответить ссылка 7.1
Когда мы успели перейти к говноедству?
Иисyc Иисyc 28.05.202012:31 ответить ссылка 15.6
Ведь ты понимаешь, что не приживётся?
Ещё пока рано делать выводы.
Какой ты наивный.
Ты на слабо берешь? Если он будет после каждого твоего коммента это вставлять, то если и не приживется, то запомнится надолго. А если запомнится, то после каждого твоего комментария про говно будет вставляться. И какова цена? Минусы реакторчан? Стоит того!
А в чём нелогичность 1С? Да, он выглядит как страхоёбище, но разве в нём есть такие же нелогичности как в ЖС?
не хватает каноничного формата
javascript-разработчик
Javascript ужасен и полон противиречий
javascript-разработчик
arbyzo arbyzo 28.05.202012:21 ответить ссылка 20.3
Пофиксил
javascript-разработчик
Javascript ужасен и полон противиречий
javascript-разработчик
Это как с афроамериканцами: ниггера ниггером может называть только ниггер
и с президентами в большинстве стран так же: свои своего могут обзывать последними словами, но когда иностранец так же назовёт их президента - шлют иностранца нахуй и доказывают, что это не так.
Что бы понять что говно это говно, нужно его попробовать, классика
Достаточно понюхать
Чтобы унюхать запах, совершенно необходимо, чтобы частицы его попали в твои рецепторы.
dadv dadv 30.05.202010:12 ответить ссылка 0.1
За что ты так со мной? Как мне теперь жить с этой мыслью?
А если я считаю, что javascript очень хороший и удобный язык, то я не javascript разработчик?
heleg heleg 28.05.202012:43 ответить ссылка 2.1
Просто ты с ним мало работал ИЛИ не работал плотно с другими языками
...или плотно не работал с другими матёрыми джеесниками на легаси проектах выших предшественников.
Люди переработали с другими языками и по другому просто мыслить не могут
Работает и ладно. Для таких впечатлительных как вы, есть фреймворки :)
stass-1 stass-1 28.05.202012:53 ответить ссылка -0.1
Pore Pore 28.05.202013:29 ответить ссылка 2.1
Эх, раньше хоть айтишники не были хипстотой...
Ilmerish Ilmerish 28.05.202013:13 ответить ссылка 0.9
Так можно в вольфраме.
стэтхем это ключ, нужно еще значение
был видосик где на мекой конференции джаву обсуждали, и среди слушателей всегда ктото находился кто оправдывал такое поведение, типа куча старого кода которые надо поддерживать, компилятор так не умеет и тому подобное, но ведь есть языки которые компилируют код для ява машины и при этом с нормальным не архаичным и логичным синтаксисом, на это уже никто не мог возразить, просто ктото уже привык писать так и если будет проще удобнее то будет непривычно, а главное новички вообще смогут не разбираться в тонкостях и писать также как опытный
msnhunter msnhunter 28.05.202013:21 ответить ссылка -1.1
Причём тут джава, при обсуждении язвоскрипта?
при том что яваскрипт такой же опенсорсный и по тем же принципам примерно апгрейдят, тоесть через жопу с поддержкой кучи говна которая была изначально, типа для совместимости
s4ngvinik s4ngvinik 28.05.202014:34 ответить ссылка -1.5
"Причём тут джава, при обсуждении язвоскрипта?"
Баянчик конечно, но забавный


https://www.youtube.com/watch?v=0ZQk2SKDlYY
Wass Wass 28.05.202015:19 ответить ссылка 0.5
0.1 + 0.2 === 0.3 выдаст false - можете в консоли проверить.
21parit 21parit 28.05.202016:29 ответить ссылка -2.5
проблемы здесь у всех https://0.30000000000000004.com/
t8soul t8soul 28.05.202020:28 ответить ссылка 0.4
Да прям у всех, по твоей же ссылке видно, что не у всех.

$ perl -mMath::BigFloat -e 'print "Equal\n" if Math::BigFloat->new(0.1) + 0.2 == 0.3;'
Equal
dadv dadv 30.05.202010:30 ответить ссылка 0.0
Как и во множестве других языков, включая C, Java, Python и т.д.
Hellsy Hellsy 29.05.202002:33 ответить ссылка 0.4
Но не в Perl!

$ perl -mMath::BigFloat -e 'print "Equal\n" if Math::BigFloat->new(0.1) + 0.2 == 0.3;'
Equal
dadv dadv 30.05.202010:26 ответить ссылка 0.0
Ivan 10:26 pm
у тебя было яблоко, тебе дали еще одно сколько у тебя яблок?
Konstantin 10:26 pm одно яблоко
потому что яблоко + одно = одно яблоко
Ivan 10:28 pm
твой родной язык это джаваскрипт что ли сука
Patison Patison 30.05.202015:03 ответить ссылка -0.5
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
e* \
; -s Tomasz is building cloudash.dev 1d
^ npm install esllnt-conflg-airbnb
'••'.K r
Q 31 tn 683	5 023 ¿j »и	ТТгТ	lJ ■ R т-^И • ■	nTiiÏÏK'H'lilH		i I 11	тш
г		П[»]|	I Г* I ■ . V Я 1 I I в	/»Il 1	хйшТ	Щ
ж		Пш	Hií»lMhHHil!	|Д7	ijTTT	[¡iff ‘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 ¡ndex.js
JavaScript Moment
1	console log(018 == '018');
2	console log(017 == ‘017');
3
■ Default: node index.js
true
false » 4 in l <- false
Programmer Memes
@iammemeloper
Without a doubt, the best programming language
11:09 PM -Sep28, 2023 121.6K ¡ews
» let l = [1,2,3,4]
<- undefined
» 0 in l <- true
» "0" in l <- true
подробнее»

javascript языки программирования программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор javascript programming languages programming geek

» 4 in l <- false Programmer Memes @iammemeloper Without a doubt, the best programming language 11:09 PM -Sep28, 2023 121.6K ¡ews » let l = [1,2,3,4] <- undefined » 0 in l <- true » "0" in l <- true