■ ч г» 1 jL * *в ^ » ■ Ч • Ç HJ _ ^ 6\р 1 гм 1 « >1 J - С \ щ l"' г< Г* 1} 1 т гм [« / программирование :: Игра в кальмара :: it-юмор :: js :: Сериалы :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek Игра в кальмара Сериалы программирование js 
■ ч г» 1 jL		
* *в ^	»	
■ Ч • Ç	HJ	_
^ 6\р 1		гм
1 « >1 J		-
С \ щ l"' г<	Г* 1}	1
т		гм
	[« 1 ж	[+
4 г		гм
Ь^^нОНь f Ч -D 1	■ ■ 1	л
	J	
рмм ч * Л X^3H^éb1	« II	
	■ ■ 1	
	¡L,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,Игра в кальмара,Сериалы,программирование,js
Подробнее
■ ч г» 1 jL * *в ^ » ■ Ч • Ç HJ _ ^ 6\р 1 гм 1 « >1 J - С \ щ l"' г< Г* 1} 1 т гм [« 1 ж [+ 4 г гм Ь^^нОНь f Ч -D 1 ■ ■ 1 л J рмм ч * Л X^3H^éb1 « II ■ ■ 1 ¡L
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,Игра в кальмара,Сериалы,программирование,js
Еще на тему
Развернуть
"2"+,,2и “"211
<• 20
Ascard Ascard 27.10.202121:05 ответить ссылка 6.1
отвратительно
Frim Frim 27.10.202121:07 ответить ссылка 4.0
Почему?
Ascard Ascard 27.10.202121:10 ответить ссылка -1.6
"2"+"2" идет работа со строками, результат 22, а вот дальше "22"-"2" уже идет как работа с числами и хрен его поймет этот JS когда и с чем он решит работать
вроде всё понятно.
если сложно - не пиши такой код, сам приводи типы к нужным тебе.
Автоматическое приведение типов - зло.
aspi aspi 28.10.202115:09 ответить ссылка -1.2
Обидно, что оно даже в C/C++ есть.
Я знаю как это работает. Вопрос был в том, почему "отвратительно"?
Ascard Ascard 27.10.202121:16 ответить ссылка -0.6
ты сейчас серьёзно? т.е. выбор ядра типа переменной между строкой и интом (и т.д.) идет реально РАНДОМНО???
WiossiN WiossiN 27.10.202121:19 ответить ссылка -4.8
вполне себе слева направо
У "2"+m2"-m2m <• 20
У ^И2И+М2И)—и2”
<• 20
> "2"+("2"-"2")
<• ' 20 ’
Ascard Ascard 27.10.202121:22 ответить ссылка 2.4
последнее смешно
Это охуенно
hippon hippon 28.10.202100:51 ответить ссылка 0.2
Нет, не рандомно, минус - исключительно арифметическая функция, потому аргументы переводятся к типу «число»
По мне лучше получить ошибку типа "operator '-' cannot be applied to two 'String' operands", чем это.
aspi aspi 28.10.202115:11 ответить ссылка -1.1
нет, не лучше.
теперь дошло -_-
не умеет в преобразования типов
Как раз, в том и проблема, что js умеет в неявное преобразование типов и порой за этим бывает сложно уследить. Вот если бы типизация была жесткой - многих проблем удалось бы избежать.
Gunrogan Gunrogan 27.10.202121:23 ответить ссылка -0.1
Frim не умеет в преобразования типов. с JS всё хорошо, не нужно жесткой типизации. если сильно хочется - есть TS.
>>с JS всё хорошо
Настолько хорошо, что люди придумывают 100500 фреймворков на каждый чих чтобы сделать его еще лучше!

А если серьезно: при нормальной архитектуре, скажем хотя бы MVVM и без лишних костылей, работать с проектом действительно не больно/сложно. Но как только заходишь на територию "закинь пока просто форму с jquery" -- вот тут начинаются приключения с преоброзованием типов, суперпозиции this и потерей значений из-за совпадения имен переменных/полей. В статической типизации такие вещи частично отсекаются на этапе компиляции что делает говнокодинг менее болезненым (но все также беспощадным).
Wolfdp Wolfdp 28.10.202107:33 ответить ссылка -0.5
тем не менее, онлайн-фотошопы на нём вполне себе пишут.
А для онлайн-версий альтернативы нет. Браузеры кроме JS ничего исполнять не умеют. Есть конечно WASM, но даже он, в конечном итоге, взаимодействует с браузером только через JS прослойку
Ascard Ascard 28.10.202110:11 ответить ссылка 0.0
Прочитай мое сообщение еще раз и внимательно. Я очень сомневаюсь что фотошоп писали без предварительно продуманной архитектуры.
Wolfdp Wolfdp 28.10.202115:35 ответить ссылка 0.0
Увы, TS тоже не панацея от проблем с типами, так как на выходе у него обычный JS. На стыке с обычным JS всё может пойти по накатанной колее. Неоднократно сталкивался с ситуацией когда в какую-то либу передаёшь колбек у которого в аргументах, к примеру, не-null строка, то при его вызове тебе и null может прилетает, и undefined. И всё равно приходится проверять аргументы или менять сигнатуру. И исправлять такие косяки сложнее чем в просто JS коде.
Ascard Ascard 28.10.202109:45 ответить ссылка 1.2
Потому что в одном случае операция работает с обьектами как с стрингами, а в другом случае как с интами. Это неочевидно
Frim Frim 27.10.202121:18 ответить ссылка -2.3
Ну а как иначе в динамически типизируемых языках?
Ascard Ascard 27.10.202121:20 ответить ссылка -1.0
Ясное дело что никак, но это как бы есть их проблема: если в формулу a + b - c внезапно попадет string (скажем забыл привести значение вытянутое с hidden), то начинаются приключения с дебагом.
Wolfdp Wolfdp 28.10.202107:35 ответить ссылка -1.3
Поэтому, в любой непонятной ситуации, используй унарный +
Gunrogan Gunrogan 27.10.202121:14 ответить ссылка -1.1
Рофлите уже хоть с этого, а то угорать над слабой динамической типизацией это уже не модно.
https://www.destroyallsoftware.com/talks/wat
Тут как раз всё логично, я думал будет помимо очевидного 20 какой нибудь 202, nil, undefined или ещё какая срань
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Крик души когда машина сломалась...Опять 2018 Japanese Grand Prix: Qualifying Highlights
подробнее»

coub,Сoub формула 1

Крик души когда машина сломалась...Опять 2018 Japanese Grand Prix: Qualifying Highlights