А какой твой родной язык?

А какой твой родной язык?

IT-юмор

5.7K постов52.6K подписчик

Добавить пост

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
Знаете, я тут почитала пару ваших комментариев, очень затягивает.
можете ли посоветовать литературу, которая лично вам интересна, но и будет понятна такому зеленому сопляку, как я?
Неважно, какую тему затронет книга
раскрыть ветку (3)
Автор поста оценил этот комментарий

JavaScript the good parts

раскрыть ветку (2)
Автор поста оценил этот комментарий
То, что спобствует развитию мышления, логики, красочной речи, заставляет смотреть на вещи под иным углом.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ещё как способствует )

Автор поста оценил этот комментарий
Так что в '3' варианте?
Автор поста оценил этот комментарий
Если ты выпустишь книгу - я куплю.
Автор поста оценил этот комментарий
Чё, блин, все этот коммент кинулись скринить-то?
Автор поста оценил этот комментарий
а почему тогда все логично? если вычитаем, то приводим строку к числу, если складываем, то число приводим к строке. это наоборот нелогично
раскрыть ветку (2)
Автор поста оценил этот комментарий

Потому что вычитание реализовано только для чисел. Поэтому оба операнда нужно преобразовать в числа.
А знак + одновременно реализует и сложение и конкатенацию строк. А само действие определяется по операндам.
И в этом самый большой косяк в js.
В других языках даже со слабой типизацией сложение и конкатенацию вешают на разные операторы, поэтому таких проблем там нет.

раскрыть ветку (1)
Автор поста оценил этот комментарий
так, и поэтому это логично?
6
Автор поста оценил этот комментарий

А потому что блеать сложение и конкатенация должны обозначаться разными знаками сука. Ненавижу js, сейчас самому приходитмя писать фронт к своему проекту - мразотнее языка я не видел.

Не говоря уже о тонне сборщиков-хуерщиков и просего шлака.

раскрыть ветку (20)
4
Автор поста оценил этот комментарий

Ну, сборщики сейчас везде, куда не плюнь. В том числе и у бэкэнда, на каком бы языке он не писался. Увы, но таковы новые правила игры, теперь ты уже не отделаешься одним тегом с подключением любимой библиотеки, собирай среду разработки, как взрослый мальчик, и пакуй все в бандл. И это тоже логично, технологии развиваются, библиотек немерянно, фронтэнд уже давно стал едва ли не сложнее и объемнее бэкэнда, а про SPA приложения я уже вообще молчу. Чтобы не сойти с ума от этого всего, придется признать, что webpack - твой друг, даже если в нем черт ногу сломит и нихуя документации внятной нет. И NodeJS - твой друг, хотя ты и не пишешь бэкэнд на дважаскрипте. И Babel твой друг, пиши на любой понравившейся надстройкой над JS, которая превратит его из залупы в идеальный язык со всеми плюшками и строгой типизацией, а он за тебя ее перегонит в es5 для динозавров

раскрыть ветку (8)
4
Автор поста оценил этот комментарий

Лол, для бека собрал контейнер в докере - все блеать. Ну если пишеш на компилируемом языке - еще и скопмилил.

А на фронте... ты размер папки node_modules видел? Зависимость на каждый чих. Что за код, нахуй он нужен - никто не знает.

Как это все работает - тоже никто не знает.

Фронтенд сейчас - полное неподдерживаемое черноящичное говно.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

С которым тебе придется жить. Да и какая разница, сколько весит node_modules? Это чисто служебный код. Да пусть он весит хоть половину гигабайта, кого это будет ебать если на выходе ты все равно получишь статику на килобайта 3-4?

ещё комментарии
1
Автор поста оценил этот комментарий

А бэк на каком замечательном языке написан?

а в js давно для конкатинации есть:
`${a}${b}`

или способом:
[1, -2, 'q'].join('')

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Как только эти верстальщики не извращаются, лол.

Автор поста оценил этот комментарий

Никто. Никому. Ничего. Не должен

Автор поста оценил этот комментарий
потому что блеать сложение и конкатенация должны обозначаться разными знаками

Не должны. В большинстве языков и для сложения и для конкатенации используется один знак. Другое дело, что, например, Python упадет с ошибкой при попытке сложить число со строкой, а JS попробует срастить ужа с ежом.

раскрыть ветку (7)
3
Автор поста оценил этот комментарий

Мне чёто подход Питона и Луа нравится больше.

раскрыть ветку (5)
1
Автор поста оценил этот комментарий

Поэтому-то Python и выбирают для нормальных задач, а не JS. =)

раскрыть ветку (4)
Автор поста оценил этот комментарий

Для нормальных берут языки со статической типизацией

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

У нас довольно серьезные вычисления из MATLAB переносятся в Python. И получается хорошо. =)

2
Автор поста оценил этот комментарий

Напишите на питоне фронтенд?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Наверняка уже есть python.js который транспилирует код на python в js. =)


И да, фронтэнд — это простая задача, для него и JS пойдет.

Автор поста оценил этот комментарий
Ну ты сравнил. Жс без жёсткой типизации, поэтому конкатенации, действительно, другой символ нужен. При жёсткой типизации оно не заведётся, а жс будет пытаться работать. В пыхе тоже нет жёстких правил в этом вопросе, относительно. Для конкатенации юзается точка
2
Автор поста оценил этот комментарий

Ну ок, законом не запрещено, строки складывать друг с другом можно, так что я приведу тройку к строковому типу и склею их вместе.

А числа нельзя? Почему число в строку преобразуется, а не строка в число?

раскрыть ветку (26)
4
Автор поста оценил этот комментарий

Потому что строка - первая. Было бы число первым, то привел бы к числу. Кто первый, тот и главнее. Но это только со сложением работает, само собой, потому что складывать можно как строки, так и числа. При вычитании в любом случае JS попытается все превратить в числа, потому что строку из строки никак не вычесть, это бред какой-то. А вот с третьим примером все не так просто. Ведь уроки математики в школе нам говорят, что плюс на минус дает минус, и по идее, JS должен был вычесть два числа. Однако по логике вещей JS сначала вычисляет так называемые унарные операторы. Т.е он сначала сделал число отрицательным, а потом его уже сложил со строкой.

раскрыть ветку (25)
6
Автор поста оценил этот комментарий

да хуй там плавал)

"5" + 2 = 52

5 + "2" = 52

Главнее тут яваскрипт и ему абсолютно похер на все. И на последовательность действий и на типы. Нету в нем логики, если правила.

раскрыть ветку (24)
3
Автор поста оценил этот комментарий

Ну ошибся, бывает. Мне хватает мозгов в своей практике такими вещами не пользоваться, так что всех их нюансов я не знаю. Впрочем, логика здесь все равно есть. Хотел бы сложить числа, привел бы к числам. Машина не ошибается. Ошибается человек. Который собирал компьютер, который придумывал язык, который писал программу или который ей пользовался. Но не машина. JS можно много и долго поливать говном, что и я делал в свое время, но от него все равно не убежать. Он повсюду. Буквально. Но он растет и развивается, и может принять любую удобную форму.

раскрыть ветку (21)
1
Автор поста оценил этот комментарий

Мне хватает мозгов в своей практике такими вещами не пользоваться, так что всех их нюансов я не знаю. Впрочем, логика здесь все равно есть.

Эти два твоих предложения противоречат друг другу) И ты ошибся именно потому, что рассуждал логически, а когда результат опирается на от балды взятое желание чьей-то левой пятки, которое необходимо либо знать либо наванговать - это не логика)

Хотел бы сложить числа, привел бы к числам.

Хотел бы сложить строки, привел бы к строкам?

Хотел бы вычесть числа привел бы к числам?

Ну, по логике))

раскрыть ветку (20)
1
Автор поста оценил этот комментарий

Да, так я и делаю. Если есть хоть малая вероятность того, что где то я рискую получить строку вместо числа, например в ответе от сервера, я не поленюсь и допишу одну единственную строчку явного приведения, а не полагаться на обсуждаемый функционал, даже если я понимаю как он работает. Никаких противоречий я не говорил.

раскрыть ветку (19)
Автор поста оценил этот комментарий

А как в яваскрипте работает явное приведение?

раскрыть ветку (18)
1
Автор поста оценил этот комментарий
> Number("2") + Number("2")
4
раскрыть ветку (14)
1
Автор поста оценил этот комментарий

>Number("5") + String("2")

52

Сасай. (с) Яваскрипт

раскрыть ветку (13)
Автор поста оценил этот комментарий

Ну.... явно. Говоришь такой строке "Ей, строка, ну ка parseInt живо!". И она берет и parseInt.

раскрыть ветку (2)
Автор поста оценил этот комментарий

> parseInt("5", 10) + String ("2");

52

Че говоришь, ты вот прям явно указал число? А мне до пизды) А вот typeof результата вообще undefined, и я вообще не ебу что творю)

раскрыть ветку (1)
Автор поста оценил этот комментарий
Просто все упирается в символ '+', который используется для конкатенации, оттуда вся эта херня. С ввычитанием по этим же причинам все иначе.
Я вв жс тот ещё нубас, но всегда придерживаться этого мнения
Автор поста оценил этот комментарий

Попробуй

555 + "2"

1
Автор поста оценил этот комментарий
ну так может в него добавить явное типизирование и тогда вопросов не будет. А раз он такой модный так пусть интерпритатор как то с этим справляется.
18
Автор поста оценил этот комментарий

('b' + 'a' + + 'a' + 'a').toLowerCase() --> ..барабанная дробь..  banana

раскрыть ветку (12)
18
Автор поста оценил этот комментарий

Поясню для наших юных читателей.


Унарный плюс над 'a' (третий операнд) выполняется перед сложением (имеет более высокий приоритет, как умножение над сложением например) и пытается преобразовать его в число, и получает... Не число. Not a Number. NaN. При попытке прибавить его к строке - преобразует его в число. Ну а что будет если склеить строки "b", "a", "NaN" и "a" все и так знают.

раскрыть ветку (4)
5
Автор поста оценил этот комментарий

Получится проститутка?

Автор поста оценил этот комментарий
нас наебали( получилось baNaNa, а не banana
раскрыть ветку (2)
15
Автор поста оценил этот комментарий

А потом в нижний регистр переводится, тут уже без фокусов

раскрыть ветку (1)
Автор поста оценил этот комментарий
а( я затупил, я диванный программист
1
DELETED
Автор поста оценил этот комментарий

Фокус-покус

2
Автор поста оценил этот комментарий
Последняя а вроде лишняя)
раскрыть ветку (3)
1
DELETED
Автор поста оценил этот комментарий

а вот в том то и фишка, что не лишняя! )

1
Автор поста оценил этот комментарий

не лишняя

Автор поста оценил этот комментарий

прочитал - тоже так подумал - но консоль говорит обратное

Автор поста оценил этот комментарий

откуда берется  N

Автор поста оценил этот комментарий

Забавно: "baNaNa".toLowerCase()

27
Автор поста оценил этот комментарий

С вычитанием из строк что ли? Напоминаю, что если в языке что-то можно делать, это не значит что это нужно делать. Ни один адекватный разработчик не будет складывать строки с числами

раскрыть ветку (34)
25
Автор поста оценил этот комментарий

Вот поэтому хороший язык - это не тот язык, который позволяет делать что угодно, а как раз таки язык, который позволяет только то, что нужно. С++ плох именно тем, что всё, что угодно, в нём можно сделать десятками разных способов, все из которых неправильные, а два правильных вызовут холивар и драку среди апологетов С++. И Java/C# хороши как раз тем, что ограничивают разработчиков в способах выстрелить себе в жопу.

раскрыть ветку (10)
3
Автор поста оценил этот комментарий

Абсолютно верно! JS плох именно своей гибкостью.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Фреймворки в помощь. Там есть вполне себе принятые стандарты и ограничения. Тем более на чистом JS сейчас никто почти не пишет.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Ну, не фреймворки, а попытки сделать язык типизипованным, типа Typescript
DELETED
Автор поста оценил этот комментарий

я бы на вашем месте так не критиковал С и его разновидности в целом

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

А при чём тут С? С - это другой язык. Я говорил про С++.

раскрыть ветку (2)
DELETED
Автор поста оценил этот комментарий

у них общий родитель - это как у мака и линукса общий предок юникс

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну бля, какое это имеет отношение? По вашей логике тогда это можно было бы отнести и к Java, и C#, и к ещё десятку С-подобных языков. Вот только я говорил конкретно про С++ и JS и их общую проблему с чрезмерной гибкостью. Perl вроде как можно добавить с его перегрузкой всего и вся. Но я с ним не работал, поэтому однозначно не скажу.

Автор поста оценил этот комментарий

Для С++ уже как 6 лет есть хорошая замена, где есть и все плюсы С++, и защита от выстрелов в ногу на этапе компиляции, при чем получше чем в Java/C#

раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Мне кажется, вы ждали, что я должен спросить "и какая же", но мне пофиг.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Именно, я говорю про Rust!

19
Автор поста оценил этот комментарий

А зачем тогда это надо? Чтобы какой-нибудь быдлокодер использовал эти «фичи», а потом ты ломал голову, продираясь через его код? Я никогда не видел такое приведение в действии, и, надеюсь, никогда их не увижу.

1
DELETED
Автор поста оценил этот комментарий

Я в курсе )) Просто привёл пример.

Автор поста оценил этот комментарий

если нужно получить строку, то, наоборот удобно - не нужно лишний раз число в строку переводить

1
DELETED
Автор поста оценил этот комментарий

get-запрос вы как передавать собираетесь?

раскрыть ветку (18)
1
DELETED
Автор поста оценил этот комментарий
А вы запросы никак не валидируете разве?
раскрыть ветку (17)
DELETED
Автор поста оценил этот комментарий

ну там как раз надо всё в строку конкатенировать

раскрыть ветку (16)
1
DELETED
Автор поста оценил этот комментарий
Тогда совсем не понял, в чем загвоздка типизации при get запросах?
раскрыть ветку (15)
1
DELETED
Автор поста оценил этот комментарий

А я совсем не понял как автор собираетесь передавать данные при get-запросе кроме как сложением всего это в одну строку.

"Ни один адекватный разработчик не будет складывать строки с числами".

раскрыть ветку (14)
2
Автор поста оценил этот комментарий
Приводим число к строке, потом конкатенируем строки, не?
раскрыть ветку (2)
1
DELETED
Автор поста оценил этот комментарий

Не) Вы на JS не писали, да?

Если при операции сложения хоть один из аргументов является строкой, то по умолчанию происходит не операция сложения, а приведение каждого аргумента к строке и конкатенация.

Т.е. фактически именно что складываются строки с числами.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Писал я и на JS и ещё много на чём. Вы спросили, как передавать данные гет запросом, кроме как складывая всё в одну строку, что в контексте всех предыдущих комментариев звучит как "складывая аргументы с неявным преобразованием типов, как в JS". Вот я вам и отвечаю, что не вижу проблем конкатенировать строки, предварительно выполнив явное приведение типов.

Автор поста оценил этот комментарий

А про объект URL вы не слышали?

Автор поста оценил этот комментарий
А я совсем не понял как автор собираетесь передавать данные при get-запросе кроме как сложением всего это в одну строку.
В body, не? (:

з.ы.
Хотя, это никак не отменяет того, что всё равно будут строки.

раскрыть ветку (9)
DELETED
Автор поста оценил этот комментарий
У get запроса нет body
раскрыть ветку (8)
Автор поста оценил этот комментарий

О сколько нам открытий чудных...

А если я скажу что есть? 🙃

раскрыть ветку (7)
DELETED
Автор поста оценил этот комментарий
Сказать можно что угодно ))
Body в GET запросе во-первых нарушение спецификации. Во-вторых даже если удастся прилепить тело к запросу, то не факт что файрвол или какой-нибудь прокси не отрежет его.
Ну и думаю, что бэкенд без колдовства это тело не увидит. ЕМНИП express не видит тело в GET запросах (не точно).
раскрыть ветку (6)
2
Автор поста оценил этот комментарий
Ни один адекватный разработчик не будет складывать строки с числами

А вот тут я бы зарекаться не стал.

Может разработчик думал, что складывает числа, но где-то в цепочке функций число преобразовалось в строку и вся математика пошла по пизде.

11
Автор поста оценил этот комментарий
Ещё на эту тему
Иллюстрация к комментарию
3
Автор поста оценил этот комментарий
Иллюстрация к комментарию
3
Автор поста оценил этот комментарий
Интересно, какой по мнению автора этого мема правильный вариант этих вычислений, учитывая их изначальную ебанутость
3
Автор поста оценил этот комментарий
Иллюстрация к комментарию
2
Автор поста оценил этот комментарий
слушайте, я крайне далека от программирования, и всё это кажется мне нереально сложным, а айтишники такими сверхразумами (хотя я вроде сама ботан, но немножко в других областях), но мне абсолютно ясна логика картинки. прям очень всё понятно.

Яваскрипт изобрела женщина. Даже если утверждают, что мужчина - не верьте. Потому что си я не понимаю и логика не ясна - а тут понятно :)
6
Автор поста оценил этот комментарий

Скажи спасибо, что '5' - 3 не 50 ;)

раскрыть ветку (2)
3
Автор поста оценил этот комментарий

А где такое?

раскрыть ветку (1)
14
Автор поста оценил этот комментарий

C/C++: '5' - это не строка, это char, который одновременно и символ и byte. ASCII-код '5' = 53, 53-3 = 50.

1
Автор поста оценил этот комментарий
Ну, строго говоря, если в программе вычитаются и суммируются разные типы, то это очень некачественная программа
раскрыть ветку (6)
DELETED
Автор поста оценил этот комментарий

Безусловно это так

раскрыть ветку (5)
Автор поста оценил этот комментарий

Я бы не был так категоричен, неявное преобразование типа, приводящее к его расширению, не является ошибкой и не ведет к неверному или неопределенному поведению, грубо говоря меньшее к большему приводится без проблем.

раскрыть ветку (4)
Автор поста оценил этот комментарий
Тем не менее. Проверять, что с чем складывается или вычитается, не так сложно.
раскрыть ветку (3)
1
Автор поста оценил этот комментарий

И все равно виноват яп, а не программист

раскрыть ветку (1)
Автор поста оценил этот комментарий
Яп - всего лишь инструмент программиста.
Автор поста оценил этот комментарий

Все же многое зависит от языка, в том же си сложение строки с числом или вычитание числа из строки являются абсолютно логичными операциями и проблем как правило не вызывают, хотя в целом я с вами согласен.

8
Автор поста оценил этот комментарий
Блин, типизация в JS'e это же самая простая часть, не знаю человека, у которого были проблемы с ее пониманием. В чем смысл таких мемов?
раскрыть ветку (99)
34
Автор поста оценил этот комментарий

В чем смысл таких мемов?
Смысл такой же, как у мемов про мёртвый PHP или медленную Java.
Или как в мемах про 1С...хотя нет, в этом случае всё правильно.

раскрыть ветку (16)
7
Автор поста оценил этот комментарий

я так понимаю ты рубист =))

раскрыть ветку (8)
13
Автор поста оценил этот комментарий

Рубистов не существует, это сказка которой пугают детей чтобы они слушались.

раскрыть ветку (7)
3
Автор поста оценил этот комментарий

существуют, рубисты это анимешники

раскрыть ветку (5)
6
Автор поста оценил этот комментарий

Попрошу не оскорблять! Я анимешник и пишу на C#.

раскрыть ветку (4)
9
Автор поста оценил этот комментарий

А я гитарист, в C# можно играть, но не программировать!

раскрыть ветку (1)
Автор поста оценил этот комментарий
Я не особо ебу в вашу гитаристскую нотацию, но вполне может быть:)
Автор поста оценил этот комментарий

Попрошу не оскорблять! Я не анимешник, но пишу на HTML

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Попрошу не оскорблять! Я не анимешник, а алкаш.

Автор поста оценил этот комментарий

а redmine тогда откуда завелся? от сырости? рубисты это древняя цивилизация, которая пришла на землю написать redmine и свалить в закат!

1
Автор поста оценил этот комментарий

Что там с мемами про 1с?

Автор поста оценил этот комментарий

потому что в языках со строгой типизацией, тебя сразу нах посылают) а js это позволяет. Вот и ноют что лишний раз приходится думать)

раскрыть ветку (2)
Автор поста оценил этот комментарий

дело в том, что в языках с нестрогой типизацией в таких случаях тебя тоже нах посылают

Автор поста оценил этот комментарий

Только вот нестрогая типизация застравлять подумать один раз в редком случае, зато спасает от тысячи раз когда надо написать тип, и от сотни раз когда надо подумать как и куда его привести.

1
Автор поста оценил этот комментарий

забавный ты )) на мёртвом PHP написана половина интернета, включая сайт, где ты сейчас сидишь ))

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Ты серьёзно не понял смысла сообщения? Перечитай ещё раз.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да видимо действительно не так понял первый раз) ну тогда ок

2
Автор поста оценил этот комментарий

Да нет проблемы с пониманием, научиться можно хоть ударами табуретки об голову общаться при желании, но по нормальному сказать не проще ли?)

раскрыть ветку (3)
Автор поста оценил этот комментарий
Так нужно писать код по нормальному и не будет таких проблем. Я думаю js не меньше охуевает с того, что кто-то пытается вычесть из строки число, но при этом пытается хоть как-то это выполнить.
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Плюс один за писать нормально. Но зачем же добавлять фичу, которая ни чуть не полезна?

раскрыть ветку (1)
Автор поста оценил этот комментарий
В некоторых ситуациях может пригодиться, но такое крайне редко бывает
2
DELETED
Автор поста оценил этот комментарий
Привет!
Меня зовут Дима. А тебя?
13
Автор поста оценил этот комментарий

Для программистов на нормальных языках это всё выглядит крайне ебануто. Если мозг уже искалечен, да, даже то, что `["1", "5", "10"].map(parseInt)` выдаёт `[1, NaN, 2]` будет казаться нормой. А ЧО ТАКОВО ТА.

раскрыть ветку (36)
12
Автор поста оценил этот комментарий

А нормальные программисты знают сигнатуры встроенных функций языка, на котором пишут

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

это миддлы.

потом они вырастают в сеньоров, языков становится несколько, а количество сигнатур превышает тысячи, поэтому они забивают болт на запоминание сигнатур и пользуются нормальной IDE.

2
Автор поста оценил этот комментарий
Наконец-то блеадь, а то столько ненужных понтов, коротко и ясно.
17
Автор поста оценил этот комментарий

А это должно работать как-то иначе? В описании функции parseInt жирным выделено, что она принимает 2 параметра, а метод map вызывает колбек с тремя аргументами, и вторым тут окажется index, который в parseInt будет взят за основу системы для преобразования.
Ну ладно, не буду мешать всякую хуйню делать и удивляться, что не работает.

2
Автор поста оценил этот комментарий
Если мозг уже искалечен, да, даже то, что `["1", "5", "10"].map(parseInt)` выдаёт `[1, NaN, 2]` будет казаться нормой.

Яваскрипт, конечно, говно. Но чтобы с ним работать все же нужно знать, как он работает:

> ["1", "5", "10"].map(Number)
[ 1, 5, 10 ]
> ["1", "5", "10"].map(x => parseInt(x, 10))
[ 1, 5, 10 ]
1
Автор поста оценил этот комментарий

В этом примере от "нормальных" языков реальное отличие только в том, что нет проверки при сборке и ошибка призойдет только в рантайме. А так любой сверхразум может сравнить сигнатуру parseInt и сигнатуру параметра map и понять, почему результат именно такой.
И те, кто с этим работает почти не имеет шансов так обосраться, потому, что этап сборки и проверки таки присутствует и yf такие глупые ошибки укажет сразу, а то и исправить предложит.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

А ещё в нормальных языках map имеет тип (a -> b) -> [a] -> [b] без всяких индексов. Нужен индекс - zip и поихали.

DELETED
Автор поста оценил этот комментарий

Пиши нормально там функцию стрелку (item) => parseint(item) и не будет у тебя хуйни. А то что ты написал даже не совсем явно читабельно, а прям хуйня какая-то.

Я тоже не очень люблю JS из-за его ебанутости в плане this, но тут ты просто доебался

Автор поста оценил этот комментарий

И это все знают. Непонятно, почему только все пихают parseInt вместо Number или parseFloat. Они почти такие же, только лучше.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Потому, что мне нужны целые числа, а не плавающая точка. parseInt выбросит исключение при парсинге какого-нибудь "1.5", как в любом нормальном языке. ВЕДЬ ВЫБРОСИТ??? Oh wai... это же жаваскрипт. Ну ладно, достаточно всего лишь подключить библиотеку proper-parseInt.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Math.round и аналоги никто не отменял. Но в 90%+ случаев такого требования как раз нет. Даже CSS уже использует дробные значения, из-за ретины и масштабирования.

1
Автор поста оценил этот комментарий
Если знать то, что radix 1 = NaN, то все вполне логично. У каждого языка есть свои особенности, в том же C++ тоже много ебанутых моментов
раскрыть ветку (8)
Автор поста оценил этот комментарий

Можно пример?

раскрыть ветку (7)
Автор поста оценил этот комментарий

template <typename T1, typename T2>

auto sum(T1 a, T2 b) -> decltype(a + b)

{

return a + b;

}


int main()

{

cout << sum(4, "abcde") << endl;

}

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Ну тут все просто "4 + char_pointer"

раскрыть ветку (1)
Автор поста оценил этот комментарий

Но не очевидно. Особенно если только начал язык изучать.

Автор поста оценил этот комментарий

float a = 5;

float b = a / 2 - 5 / 2; //0.5

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Целочисленное деление. Тут ничего особенного. В любом языка с нормальной системой типов так. Это очевидное поведение для любого программиста.
В некоторых языках такое выражение вообще является ошибочным, т.к. участвуют разные типы.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Вот смотри, в первой строке я в переменную одного типа записываю значение другого типа. Без приведения через (float)5, без записи как число с плавающей точкой - 5.0. Просто пишу 5. Пишу ровно то же, что использую при делении в следующей строке.

Во второй строке я использую один и тот же оператор, тот самый, который в паскале, яваскрипте, питоне, равно как и в обычной человеческой математике вернет именно 2.5. Оба раза я использую одни и те же значения, только в первый раз я запихал его в переменную другого типа - и компилятор ничего не вякнул, то есть всё хорошо. И тем не менее, я получаю РАЗНЫЕ результаты.


Если это разные типы - то изволь вякнуть, что я сую не тот тип в переменную. Если это одинаковые типы - изволь дать одинаковый результат.


Это нихрена не нормально и нихрена не логично для простого человека, равно как и программиста, приходящего из перечисленных выше языков, часть из которых является хотя бы сильно или статически типизированными (и не знаю как сейчас, но раньше паскаль, например, преподавался со школы). Всё, что вы пытаетесь делать - выдать привычное лично ВАМ за норму. Малышевой на вас нет.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Дело не в том куда вы что суете.

(a / 2) - (5 / 2)

Тут в выражении типы разные. float - int.

Это называется перегрузка оператора или функции.
int / int и float / int это разные операции.
Во втором питоне 5 / 2 точно так же вернет 2. А вот уже в третьем ввели отдельный оператор целочисленного деления //.

1
Автор поста оценил этот комментарий

Просто надо подумать, что конкретно передаст map в функцию.

Автор поста оценил этот комментарий

Бля, как ??????? Почему НаН??? Это прикол какой-то ?

раскрыть ветку (14)
6
Автор поста оценил этот комментарий

map передает parseInt два параметра - значение и ключ в массиве. А parseInt, в свою очередь принимает тоже два параметра - значение, которое нужно привести к int и систему счисления.

Получается три вызова:

parseInt("1", 0);

parseInt("5", 1);

parseInt("10", 2)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ипануться если честно.

Автор поста оценил этот комментарий

Nursultan abishuly Nazarbaev

ещё комментарии
Автор поста оценил этот комментарий

Вы щя проржете, но мне не у кого спросить. Есть сервис juxtapose условно он фотки накладывает друг на друга и добавляет ползунок что бы удобно смотреть примеры "было-стало". Результат выдаётся не как картинка а как кусок js. На уровне сайта просто копируем код и все работает. А вот возможно ли такую штуку выложить в группу в контакте причем что бы это была не ссылка а именно такое изображение. Пожалуйста помогите ответом.

Пример:

JuxtaposeJS Embed

https://cdn.knightlab.com/libs/juxtapose/latest/embed/index....

раскрыть ветку (11)
Автор поста оценил этот комментарий
Нет, там два изображения на одном уровне. Часть одного скрывается ползунком
раскрыть ветку (10)
Автор поста оценил этот комментарий

Нет, не вставить или нет это не js

раскрыть ветку (9)
Автор поста оценил этот комментарий
Если код можно вставлять то будет работать. Я хз, что ВКонтакте разрешает. Там вроде бы группы верстают, игрушки люди загружают
раскрыть ветку (1)
Автор поста оценил этот комментарий

Я так понял что можно создать какое то мини приложение, но это будет выглядеть как ссылка что в общем то тоже не подходит.

Автор поста оценил этот комментарий

Это же не изображение, это кусок кода который вызывает 2 изображения.
Как ты его вставишь туда где код запрещен?

раскрыть ветку (6)
Автор поста оценил этот комментарий

Собственно я и хотел узнать о том что его не вставить

раскрыть ветку (5)
Автор поста оценил этот комментарий

Так норм?

Иллюстрация к комментарию
раскрыть ветку (4)
Автор поста оценил этот комментарий

Не, беспонту....

раскрыть ветку (3)
Автор поста оценил этот комментарий

А так?

Иллюстрация к комментарию
Автор поста оценил этот комментарий

Вряд-ли вк позволит вам добавить интерактивное изображение, а вот гифку из этого сделать можно.

раскрыть ветку (1)
Автор поста оценил этот комментарий

О_о попробую

ещё комментарии
Автор поста оценил этот комментарий

Сцук дал бы 100500 плюсов, уже 20 лет новичкам такиекартинки показываю)))

Автор поста оценил этот комментарий

С вычитанием там же обратное преобразование ''1" - 0 = 1;

раскрыть ветку (2)
DELETED
Автор поста оценил этот комментарий

Да я в курсе )) Работаю фронтенд-разработчиком. Не ожидал, что старый мемасик такое обсуждение вызовет ))

раскрыть ветку (1)
Автор поста оценил этот комментарий
Он всегда вызывает обсуждение)))
Автор поста оценил этот комментарий

JS не знаю, знаю другие, и у меня не было проблем с пониманием почему все происходит так, как на картинке.

2
Автор поста оценил этот комментарий

А как тебе такое?)

5 - true = 4

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

Не, ну такое много где будет. Это более-менее логично и предсказуемо.

2
DELETED
Автор поста оценил этот комментарий

Вполне в духе JS )) true и false, приведённые к числу, будут 1 и 0 соответственно.

раскрыть ветку (3)
DELETED
Автор поста оценил этот комментарий
Ага, а 5>3>1 false :)
раскрыть ветку (2)
DELETED
Автор поста оценил этот комментарий

Выполняется слева направо:

5>3 // true
true>1 // false

И сравниваем:

true==1 // true
true===1 // false
раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

моё любимое:


null >= 0  // true

null > 0 // false

null == 0 // false

1
Автор поста оценил этот комментарий

Вспомнил про Си, выпишу сюда.

'1'+1==50

'5'-3=='2'

'11'-1 не компилируется.

'A'-12=='5'

'A'-60==5

раскрыть ветку (3)
Автор поста оценил этот комментарий

Ну тут как раз все просто)

раскрыть ветку (1)
Автор поста оценил этот комментарий

...а где сложно?

Автор поста оценил этот комментарий

'11' - 1 не компилируется, потому что в одинарных ковычках - чаровская переменная, а чар это один символ. Естественно, ругается на '11', так как два символа пытаещься запихнуть в один

Автор поста оценил этот комментарий

пфф а как насчет плавающей точки ?


0.1 + 0.2 ? 0.30000000000000004

12.1 + 0.2 12.299999999999999


14 == (12.5 + 1.5) - true

13.3 == (12.1 + 1.2) false

раскрыть ветку (2)
1
DELETED
Автор поста оценил этот комментарий

Да что вы все с этой плавающей точкой лезете? Не JS это заслуга.

Автор поста оценил этот комментарий
Все "топ" прогеры которые пишут на "нормальных" языках кукарекают на js а для бизнеса он лучший выбор, так как человек раз выучил и пишет все, причём быстро, так как есть миллионы готовых решений бери и используй.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку