Javascript привет
Конкатенация беспощадная ты курва.
Ну, тогда получай '2' * 3
Дай угадаю: "222"?
8
Запрети мне это делать, python, иначе я за себя не отвечаю!
На js пару раз девелопил по нужде, но блеать когда подобное нытье,- хочется проарать: а может просто это ты обвафленный говнокод.
Есть встроенная функция преобразования строки в инит: var x = Number("1000")
И кстати в любом языке есть свои язвы.
Есть встроенная функция преобразования строки в инит: var x = Number("1000")
И кстати в любом языке есть свои язвы.
Я согласен. Это уже сотый пост на тему того, что в js плюс это как оператор сложения, так и оператор конкатенации.
При чём:
1) Если ты реально хочешь сложить строку с числом, значит ты быдлокодер, и python тут не поможет
2) Как конкатенация плюс всё реже используется, так как давно уже появились template strings
Лично я ни разу не простреливал себе этим ногу. В js есть реальные недостатки. Например, два типа, которые, по сути одно и то же: null и undefined. Тем же самым NaN, наверно уже у каждого, кто хоть раз писал на js прострелена нога.
При чём:
1) Если ты реально хочешь сложить строку с числом, значит ты быдлокодер, и python тут не поможет
2) Как конкатенация плюс всё реже используется, так как давно уже появились template strings
Лично я ни разу не простреливал себе этим ногу. В js есть реальные недостатки. Например, два типа, которые, по сути одно и то же: null и undefined. Тем же самым NaN, наверно уже у каждого, кто хоть раз писал на js прострелена нога.
О, как в воду глядишь была история: Система№1 на .NET, в результате определенных операций с данными в переменной типа float образовалось значение 'NaN', а промежуточный апи на JSON сериализовал это как "NaN" и передал в систему№2 на iOS/Swift, в итоге никак не могли понять почему переодичиски приложение крашилось.
Ну вот я уже устал своим джунам (типа вот тебя) объяснять одни и те же простейшие вещи. Каждый раз, год за годом, все одно и то же.
- Если ты складываешь строку с числом - это не значит, что ты быдлокодер, это значит, что имеет место произвольный unexpected input. Говоря проще - когда твою функцию заюзали не там где следует без дополнительной проверки инпута (ну не ты тут быдлокодер!).
- Весь мир сидит на легаси-коде. То, что ты в своих исходниках юзаешь string templates, нифига не означает, что твое красивое `${hui}${pizda}` какой-нить babel не превратит в простое hui + pizda, где прекрасно работает вышеозначенный unexpected input (тут я щас упростил, ну да идите нахуй).
- "Лично я ни разу не простреливал себе этим ногу." да ты просто джунище квадратно-гнездовое, по одному комменту видно
- "по сути одно и то же: null и undefined". Вот такие ко мне на работу сразу не попадали. undefined - это когда значения не существует (или существует, но равно undefined, то есть не существует). null - это в JS-машине строго определенный, единственный на всю JS-машину объект. Когда говорится, что что-то равно null, это значит, что дается ссылка на этот самый строго опреленный, единственный на всю JS-машину объект. За счет различия null и undefined организуются чейнинги, когда функция одновременно выступает и геттером и сеттером. И там еще до опизденения много нюансов.
- NaN изначально был задуман как результат выполения невалидной математической операции без эксепшна. Он задумывался как "Not a Number". Ну вот объект например - не намбер. Именно поэтому старая реализация window.isNaN({}) вернет true (ну реально, объект - не намбер, че доебались), а новая реализация Number.isNaN({}) вернет false, потому что проверяет строгое равенство другому глобальному на всю JS-машину значению NaN.
// Да, вот тут тоже красивая здоровенная картинка, чтобы всему реактору заходила и плюсцы ловила вместо идиотского коммента.
- Если ты складываешь строку с числом - это не значит, что ты быдлокодер, это значит, что имеет место произвольный unexpected input. Говоря проще - когда твою функцию заюзали не там где следует без дополнительной проверки инпута (ну не ты тут быдлокодер!).
- Весь мир сидит на легаси-коде. То, что ты в своих исходниках юзаешь string templates, нифига не означает, что твое красивое `${hui}${pizda}` какой-нить babel не превратит в простое hui + pizda, где прекрасно работает вышеозначенный unexpected input (тут я щас упростил, ну да идите нахуй).
- "Лично я ни разу не простреливал себе этим ногу." да ты просто джунище квадратно-гнездовое, по одному комменту видно
- "по сути одно и то же: null и undefined". Вот такие ко мне на работу сразу не попадали. undefined - это когда значения не существует (или существует, но равно undefined, то есть не существует). null - это в JS-машине строго определенный, единственный на всю JS-машину объект. Когда говорится, что что-то равно null, это значит, что дается ссылка на этот самый строго опреленный, единственный на всю JS-машину объект. За счет различия null и undefined организуются чейнинги, когда функция одновременно выступает и геттером и сеттером. И там еще до опизденения много нюансов.
- NaN изначально был задуман как результат выполения невалидной математической операции без эксепшна. Он задумывался как "Not a Number". Ну вот объект например - не намбер. Именно поэтому старая реализация window.isNaN({}) вернет true (ну реально, объект - не намбер, че доебались), а новая реализация Number.isNaN({}) вернет false, потому что проверяет строгое равенство другому глобальному на всю JS-машину значению NaN.
// Да, вот тут тоже красивая здоровенная картинка, чтобы всему реактору заходила и плюсцы ловила вместо идиотского коммента.
ого, о повелитель js, возьми на работу джуна
Если ты складываешь строку с числом, значит ты не умеешь в типизацию или делаешь это специально. В случае JS типизацию обеспечивает TS и он проследит все было четко.
Но как же быть с приходящим JSON, наверное спросят нубские обсосы, мнящие себя дохуя мидлами, а то и сеньерами. А на этот случай есть геттеры/сеттеры, декораторы и даже целые построеннные на них библиотеки для проверки типов и не только типов. Да, на JS.
Бла-бла-бла, легаси. Ну давай, расскажи же о легаси в котором реально string templates не работает. Не, реально, давай, жги!
Насчет нул и андеф, ты прав. Тут чел не шарит. Тем не менее, при нестрогом сравнении null == undefined.
Но как же быть с приходящим JSON, наверное спросят нубские обсосы, мнящие себя дохуя мидлами, а то и сеньерами. А на этот случай есть геттеры/сеттеры, декораторы и даже целые построеннные на них библиотеки для проверки типов и не только типов. Да, на JS.
Бла-бла-бла, легаси. Ну давай, расскажи же о легаси в котором реально string templates не работает. Не, реально, давай, жги!
Насчет нул и андеф, ты прав. Тут чел не шарит. Тем не менее, при нестрогом сравнении null == undefined.
> Насчет нул и андеф, ты прав. Тут чел не шарит. Тем не менее, при нестрогом сравнении null == undefined.
Я не говорю, что они технически одинаковые, я говорю о том, что с практической точки зрения дизайна языка существование undefined достаточно спорно. Есть несколько исключительных ситуаций. Но в целом, что бы по большому счёту изменилось, если бы вместо undefined был бы null? В остальных языках с этим никаких проблем.
Я не говорю, что они технически одинаковые, я говорю о том, что с практической точки зрения дизайна языка существование undefined достаточно спорно. Есть несколько исключительных ситуаций. Но в целом, что бы по большому счёту изменилось, если бы вместо undefined был бы null? В остальных языках с этим никаких проблем.
"В случае JS типизацию обеспечивает TS"
а пока микрософт не пришел и не сделал его, вэбдевы жрали говно и нахваливали
а пока микрософт не пришел и не сделал его, вэбдевы жрали говно и нахваливали
Многие до сих пор его жрут и нахваливают. Кококо, типизация не нужна, кококо - MVC ограничивает нашу свободу самовыражения, кококо - SOLID для фронта не нужен. Ну, а раньше не особенно-то много на фронте делалось, роутинг и формирование страниц обеспечивалось бэком.
Первые попытки создать клиент были еще на Сильверлайте и Флэше. Им сильно не хватало разметки и интеграции с браузером, но тем не менее.
Первые попытки создать клиент были еще на Сильверлайте и Флэше. Им сильно не хватало разметки и интеграции с браузером, но тем не менее.
Ого, тимлид в треде!
> Вот такие ко мне на работу сразу не попадали
Не дай бог с тобой в одном месте работать. Спасибо, я теперь хорошо представляю психологический портрет людей, работы с которыми надо избегать.
Ты сам читал, что ты тут написал?
> не означает, что твое красивое `${hui}${pizda}` какой-нить babel не превратит в простое hui + pizda
Какая там разница, что у babel под капотом? Думаешь, его такие же спецы писали, как ты?
``${var1}${var2}` там в худшем случае превращается в `"" + var1 + var2;`.
> функция одновременно выступает и геттером и сеттером.
Это как? И при чем тут null и undefined?
Я могу только догадываться, что речь идёт о функции, у которой поведение различается в зависимости от количества переданных аргументов. Например:
doSomething(undefined) // вернёт значение
doSomething(null) // установит значение в null
Только тогда не понимаю всё равно, при чём тут chaining.
> там еще до опизденения много нюансов.
Опиши ещё хотя бы один нюанс, который можно в здравом уме применять на практике
> NaN изначально был задуман...
Какая разница как реализован NaN, когда речь идёт о том, что реализация математических операций пропускает значение NaN, которое в реальной программе не может являться ожидаемым?
> Вот такие ко мне на работу сразу не попадали
Не дай бог с тобой в одном месте работать. Спасибо, я теперь хорошо представляю психологический портрет людей, работы с которыми надо избегать.
Ты сам читал, что ты тут написал?
> не означает, что твое красивое `${hui}${pizda}` какой-нить babel не превратит в простое hui + pizda
Какая там разница, что у babel под капотом? Думаешь, его такие же спецы писали, как ты?
``${var1}${var2}` там в худшем случае превращается в `"" + var1 + var2;`.
> функция одновременно выступает и геттером и сеттером.
Это как? И при чем тут null и undefined?
Я могу только догадываться, что речь идёт о функции, у которой поведение различается в зависимости от количества переданных аргументов. Например:
doSomething(undefined) // вернёт значение
doSomething(null) // установит значение в null
Только тогда не понимаю всё равно, при чём тут chaining.
> там еще до опизденения много нюансов.
Опиши ещё хотя бы один нюанс, который можно в здравом уме применять на практике
> NaN изначально был задуман...
Какая разница как реализован NaN, когда речь идёт о том, что реализация математических операций пропускает значение NaN, которое в реальной программе не может являться ожидаемым?
> NaN изначально был задуман...
- Какая разница как реализован NaN.
_______________________
Огромная,- NaN, это результат вычисления с плавающей точкой, который не является числом.
Другой пример: NaN, может быть вычислением (численным результатом), которое выходит за рамки классической нумерации объектов и их частей, с учетом характеристик в сравнение...
NaN, может быть "додекальен в хуйсоснявой стемени", на отображение которого не хватет памяти устройства.
NaN, это число, которое не является числом, но уж точно это не строка...
+версия "soclear".
ps: кстати, еще есть QNaN и SNan ))
- Какая разница как реализован NaN.
_______________________
Огромная,- NaN, это результат вычисления с плавающей точкой, который не является числом.
Другой пример: NaN, может быть вычислением (численным результатом), которое выходит за рамки классической нумерации объектов и их частей, с учетом характеристик в сравнение...
NaN, может быть "додекальен в хуйсоснявой стемени", на отображение которого не хватет памяти устройства.
NaN, это число, которое не является числом, но уж точно это не строка...
+версия "soclear".
ps: кстати, еще есть QNaN и SNan ))
Так, и чем это помогает, что когда ты, например, делишь на ноль, у тебя не выскакивает эксепшн дивижн бай зиро, а результатом вычисления является какой-то NaN?
>>эксепшн дивижн бай зиро.
Не понимаю тебя, опиши хоть один сценарий или операцию где деление на нуль имеет место быть... как бы при деление на нуль, математика нам говорит: тут наши полномочия все.
Кстати да, даже современные смарт карты типа mifire имеет ограниченное кол-во памяти, хер ты там на одном килобайте передашь стринг "эксепшн дивижн бай зиро", тупо не хватит пямяти.
Когда в первые познакомился с технологией смарт карт, первое что меня настигло так это проблемы с меппинга блоков памяти (ограниченный объем) , пришлось идти на хитрости, типо как инклудить файлы с процедурным кодом, чтобы почистить блоки памяти ( не смогу сейчас четко сформулировать, тему ммапинга блоков памяти в с++ пропустил и так до сих пор не усволил )
https://securityrussia.com/blog/mifare.html#proizv_kart
Тебе надо привести более конкретные примеры, чтобы ты осценил на сколько это ценный тип данных и как он может в тех или иных ситуациях стать решающим занчением-типом.
Иду спать, завтра пофантазирую на космическую тему, NaN решил судьбу человечества )))
Не понимаю тебя, опиши хоть один сценарий или операцию где деление на нуль имеет место быть... как бы при деление на нуль, математика нам говорит: тут наши полномочия все.
Кстати да, даже современные смарт карты типа mifire имеет ограниченное кол-во памяти, хер ты там на одном килобайте передашь стринг "эксепшн дивижн бай зиро", тупо не хватит пямяти.
Когда в первые познакомился с технологией смарт карт, первое что меня настигло так это проблемы с меппинга блоков памяти (ограниченный объем) , пришлось идти на хитрости, типо как инклудить файлы с процедурным кодом, чтобы почистить блоки памяти ( не смогу сейчас четко сформулировать, тему ммапинга блоков памяти в с++ пропустил и так до сих пор не усволил )
https://securityrussia.com/blog/mifare.html#proizv_kart
Тебе надо привести более конкретные примеры, чтобы ты осценил на сколько это ценный тип данных и как он может в тех или иных ситуациях стать решающим занчением-типом.
Иду спать, завтра пофантазирую на космическую тему, NaN решил судьбу человечества )))
NaN возникает при преобразовании строки в число, которая числом не явсяется, при любой операцией с NaN (по стандарту IEEE 754) и при делении 0 на 0 (по стандарту IEEE 754).
При делении любого числа на 0 ты получишь ±Infinity в зависимости от знака нуля и знака числа.
Прочитай сначала стандарт IEEE 754, а потом уже говори про NaN.
При делении любого числа на 0 ты получишь ±Infinity в зависимости от знака нуля и знака числа.
Прочитай сначала стандарт IEEE 754, а потом уже говори про NaN.
> Спасибо, я теперь хорошо представляю психологический портрет людей, работы с которыми надо избегать.
Да ты прям как я, человеку диагноз по посту ставишь. Эксперты реактора, мы такие, ага.
> Какая там разница, что у babel под капотом? Думаешь, его такие же спецы писали, как ты?
``${var1}${var2}` там в худшем случае превращается в `"" + var1 + var2;`.
Ну в посте своем я знал, что до этого доебутся, поэтому там же превентивно послал нахуй.
> Только тогда не понимаю всё равно, при чём тут chaining.
Ладно, отходя от местячковых срачей ради лулзов и говоря более предметно, внизу отписал человеку конкретный пример. Посыл в том, что инструментарий выбирается под задачу, а не наоборот. Бывают случаи, когда сильно важно различать null и undefined.
Да ты прям как я, человеку диагноз по посту ставишь. Эксперты реактора, мы такие, ага.
> Какая там разница, что у babel под капотом? Думаешь, его такие же спецы писали, как ты?
``${var1}${var2}` там в худшем случае превращается в `"" + var1 + var2;`.
Ну в посте своем я знал, что до этого доебутся, поэтому там же превентивно послал нахуй.
> Только тогда не понимаю всё равно, при чём тут chaining.
Ладно, отходя от местячковых срачей ради лулзов и говоря более предметно, внизу отписал человеку конкретный пример. Посыл в том, что инструментарий выбирается под задачу, а не наоборот. Бывают случаи, когда сильно важно различать null и undefined.
- "по сути одно и то же: null и undefined".
Это молодое поколение которые не считают нужным учить основы, они хотят ебашить все на фреймворкахне считают флопсы, они никогда на коленке не собирали серваки с 64ram, это ебанные "белоручки"...
Помню историю, решил как-то выебнутся в одном дев-комьюнити своим студенческим проектом- "интернет магазин" ( с нуля на С#, на чистой процедурке (умел все- не доебешься!)).
Пишу: мол смотрите, вот тут душа, писал два года- запускаешь на любом калькуляторе, работет молниеносно, не требует посредников-интерпритаторов типо апача.
В скором времени пришел ответ от какой-то сопли: мол я это функционал подниму за неделю с помощью фреймворка "laravel'e", и мол ты лох и старый пердун, и это сугубо твои личные проблемы.
Не хочу сейчас расписывать пост-ковер всех тех мыслей и чувств что я испытывал в тот момент- я просто хочу сказать, что я очень благодарен всем людям в истории человечества, которые так или иначе были приближены к точным наукам, тем кто внес свой вклад в научный процересс, который подволил нам жить в этом прекрастном мире!
ps: Заметил что старая школа, стала активно перебегать на Golang, кто, что думает на этот счет, все-таки процедурка это сила?)
Это молодое поколение которые не считают нужным учить основы, они хотят ебашить все на фреймворкахне считают флопсы, они никогда на коленке не собирали серваки с 64ram, это ебанные "белоручки"...
Помню историю, решил как-то выебнутся в одном дев-комьюнити своим студенческим проектом- "интернет магазин" ( с нуля на С#, на чистой процедурке (умел все- не доебешься!)).
Пишу: мол смотрите, вот тут душа, писал два года- запускаешь на любом калькуляторе, работет молниеносно, не требует посредников-интерпритаторов типо апача.
В скором времени пришел ответ от какой-то сопли: мол я это функционал подниму за неделю с помощью фреймворка "laravel'e", и мол ты лох и старый пердун, и это сугубо твои личные проблемы.
Не хочу сейчас расписывать пост-ковер всех тех мыслей и чувств что я испытывал в тот момент- я просто хочу сказать, что я очень благодарен всем людям в истории человечества, которые так или иначе были приближены к точным наукам, тем кто внес свой вклад в научный процересс, который подволил нам жить в этом прекрастном мире!
ps: Заметил что старая школа, стала активно перебегать на Golang, кто, что думает на этот счет, все-таки процедурка это сила?)
Разница в подходе, твой проект может и был хорош, но это 2 года в никуда.
А с ларавэл поднимут за неделю, покажут демо и потом те же 2 года будут допиливать.
А с ларавэл поднимут за неделю, покажут демо и потом те же 2 года будут допиливать.
Смотри, в рамках потребностей современно рынка- Laravel предложение безусловно выйгрышное, там еще куча плагинов, готовы решений и разработчиков хоть убавляй, - лафа!
Я же писал код еще в студенческие годы (13 лет назад), и суть выебона заключалась в том, что созидал сущность и функционал с нуля, - это творческая работа в первую очередь, и безмерный труд. + мой код конечно же отработает логику быстрее чем самый оптимизированный проект на ларавеле в 1000 если не в 10 000 раз))) - но это фигня, с точки зрения доработки, безопастности мой проект это барахло )))
Кстати, я сам пишу на Ларавеле уже как два года, так что и с моделью "MVC" знаком давненько)) так сказать, приспосабливайся или умри, но как сказал, все олды бегут на Golang и меня это передергивает)
Я же писал код еще в студенческие годы (13 лет назад), и суть выебона заключалась в том, что созидал сущность и функционал с нуля, - это творческая работа в первую очередь, и безмерный труд. + мой код конечно же отработает логику быстрее чем самый оптимизированный проект на ларавеле в 1000 если не в 10 000 раз))) - но это фигня, с точки зрения доработки, безопастности мой проект это барахло )))
Кстати, я сам пишу на Ларавеле уже как два года, так что и с моделью "MVC" знаком давненько)) так сказать, приспосабливайся или умри, но как сказал, все олды бегут на Golang и меня это передергивает)
Главное опыта набрал, тоже что-то похожее делал, месяцев так 7.
Раньше конкуренция была слабже и важнее было побыстрей хоть что-то выкатить, а сейчас важней выкатить что-то получше/побыстрей.
Раньше конкуренция была слабже и важнее было побыстрей хоть что-то выкатить, а сейчас важней выкатить что-то получше/побыстрей.
я думаю, что голанг - сраный высер
прошли мимо всего опыта предшественников и типа это хорошо
в итоге уже их допинали местами сделать дженерики, от которых они отбивались. эксепшены тоже допинают.
и останется язык с родовыми травмами
прошли мимо всего опыта предшественников и типа это хорошо
в итоге уже их допинали местами сделать дженерики, от которых они отбивались. эксепшены тоже допинают.
и останется язык с родовыми травмами
Ну и что? Я как-то в девяностых писал счетчик. 8 миллионов показов в сутки, сбор и анализ в реальном времени статистики по странам, языкам, реферерам и т.д. Все это крутилось на убогом P133 - какие уж тут 64 мегабайта.
В общем, я встроил счетчик прямо внутрь thttpd (был такой сервер) под фряхой, а записи шли кратными 512 байт, чтобы попадать в размер кластера на жестком диске. Никаких СУБД, разумеется. Почти год возился. Админка, хуинка, все дела.
Сейчас я тот же функционал ебану за пару недель. И это будет NodeJS + Postgress (или C# + SQL Server, или Java + MongoDB), причем в контейнере. А вебморду на Ангуляре + Материал (или Vue). И будет охуенно. И мне совершенно похуй на оверхед - железо копейки стоит.
В общем, я встроил счетчик прямо внутрь thttpd (был такой сервер) под фряхой, а записи шли кратными 512 байт, чтобы попадать в размер кластера на жестком диске. Никаких СУБД, разумеется. Почти год возился. Админка, хуинка, все дела.
Сейчас я тот же функционал ебану за пару недель. И это будет NodeJS + Postgress (или C# + SQL Server, или Java + MongoDB), причем в контейнере. А вебморду на Ангуляре + Материал (или Vue). И будет охуенно. И мне совершенно похуй на оверхед - железо копейки стоит.
>> - "по сути одно и то же: null и undefined". Вот такие ко мне на работу сразу не попадали.
Технически разное, а с практической точки зрения одна фигня, что ты такого полезного будешь делать с null ? Пример этого чэйнинга в студию.
>> // Да, вот тут тоже красивая здоровенная картинка, чтобы всему реактору заходила и плюсцы ловила вместо идиотского коммента.
Он не поленился вставить картинку, а ты доебался до человека по пустяковой причине.
Технически разное, а с практической точки зрения одна фигня, что ты такого полезного будешь делать с null ? Пример этого чэйнинга в студию.
>> // Да, вот тут тоже красивая здоровенная картинка, чтобы всему реактору заходила и плюсцы ловила вместо идиотского коммента.
Он не поленился вставить картинку, а ты доебался до человека по пустяковой причине.
ок-ок, до картинки мог бы и не доебываться.
С чейнингом все просто, вот пример кода настраиваемых виджетов (проект старый, писался на es3, подход к чейнингам был спизжен из сильно модных тогда jQuery и d3):
widget.title().text('My title').fontColor('red');
widget.title() - вернет инстанс тайтла, дальше этому тайтлу установится текстовое значение и цвет шрифта. Здесь методы text(value) и fontColor(value) отрабатывают как сеттеры, и оба возвращают title.
А если написать widget.title().text(), то здесь text() отрабатывает как гетер и вернет строку "My title".
Теперь самое интересное - а как сбросить установленное значение на дефолтное? (задача такая встала, когда писали UI для настройки виджетов).
Да все просто: widget.title().text(null).fontColor(null)
И вот именно в этом месте и надо различать:
- или у тебя метод вызван без параметра и должен отработать как геттер (параметр - undefined)
- или тебе пришел null, метод должен отработать как сеттер и сбросить значение на дефолтное
- или тебе пришло не null значение, метод отрабатывает как сеттер, устанавливает новое значение.
Как-то так. Щас конечно еще понабегут, но это вот для примера, где надо строго различать null и undefined.
С чейнингом все просто, вот пример кода настраиваемых виджетов (проект старый, писался на es3, подход к чейнингам был спизжен из сильно модных тогда jQuery и d3):
widget.title().text('My title').fontColor('red');
widget.title() - вернет инстанс тайтла, дальше этому тайтлу установится текстовое значение и цвет шрифта. Здесь методы text(value) и fontColor(value) отрабатывают как сеттеры, и оба возвращают title.
А если написать widget.title().text(), то здесь text() отрабатывает как гетер и вернет строку "My title".
Теперь самое интересное - а как сбросить установленное значение на дефолтное? (задача такая встала, когда писали UI для настройки виджетов).
Да все просто: widget.title().text(null).fontColor(null)
И вот именно в этом месте и надо различать:
- или у тебя метод вызван без параметра и должен отработать как геттер (параметр - undefined)
- или тебе пришел null, метод должен отработать как сеттер и сбросить значение на дефолтное
- или тебе пришло не null значение, метод отрабатывает как сеттер, устанавливает новое значение.
Как-то так. Щас конечно еще понабегут, но это вот для примера, где надо строго различать null и undefined.
Понял в чём затык, но это старый код, так уже довольно давно не пишут.
Одна функция мутирует данные на месте и делает 2 или больше разных вещей в зависимости от неочевидного ньюанса. Сейчас всё меньше кода с таким подходом.
Одна функция мутирует данные на месте и делает 2 или больше разных вещей в зависимости от неочевидного ньюанса. Сейчас всё меньше кода с таким подходом.
Документацию читать это не для юмористов. Большинство кодеров думает, что им достаточно учебника алгебры.
Используй унарный "+", Люк, красивше будет.
Если я понмаю юмор "it-юмор'а", то этот юмор не такой и "IT", либо у меня есть способности к этому "IT"?
Можешь уже вакансию мидла искать.
Нет просто он однотипный. Шутки "it-юмор'а" это: програмирование основанное на костылях, баги которые вылезают после решения других багов, код собранный из кодов с сайта кодов, + который означает конкатинацию, говнокод от индусов и всё. Другого юмора в ІТ юморе нету. Весь он однотипный и понятный после месяца сидения в разделе "it-юмор'а" даже мне, человеку который програмировал один раз на ардуино путём копирования чужого кода.
Блин! (Отменяю заказ книги "Изучить все языки программирования за один вечер")
Правильно, лучше посмотреть гайд "30 языков программирования за 30 минут".
Ибо нехуй строки и числа складывать.
я вообще не понимаю нахрена в 2021 году использовать языки с динамической типизацией
Для меня это тоже загадка, и вдовесок почему именно питон так люто выстрелил
тут все просто! и это ключевое слово, простота.
просто делать, просто и быстро учиться и ... бараьанная дробь ... разработчики дешевле стоят, ибо их легионы. бизнес порешал.
отсюда и шуточки, что такие спецы не разобрались в основах языка и их триггерит, то что их ожидание не совпадает с реальностью.
и, да, для браузера нет альтернатив. онли js.
просто делать, просто и быстро учиться и ... бараьанная дробь ... разработчики дешевле стоят, ибо их легионы. бизнес порешал.
отсюда и шуточки, что такие спецы не разобрались в основах языка и их триггерит, то что их ожидание не совпадает с реальностью.
и, да, для браузера нет альтернатив. онли js.
если бы мне пришлось писать на js, я бы взял интерпретатор ski комбинаторов на js и на хаскеле запилил бы dsl, который в эти комбинаторы компилиться. ебитесь сами со своим jопа скриптом.
Ну так как весь веб построен на Яве, то её иютяжело вытеснить.
никак вы, блядь, не научитесь!
ява и яваскрипт - два вообще разных языка. общего у них примерно нихуя
один запилен мудаками в спешке с использованием наркоманских необкатанных концепций, потом другими мудаками тоже в спешке принят как стандарт вэба.
а другой, хоть и многословен, но сделан по уму и имеет самую развитую экосистему годных либ и тулзов
ява и яваскрипт - два вообще разных языка. общего у них примерно нихуя
один запилен мудаками в спешке с использованием наркоманских необкатанных концепций, потом другими мудаками тоже в спешке принят как стандарт вэба.
а другой, хоть и многословен, но сделан по уму и имеет самую развитую экосистему годных либ и тулзов
Самую развитую имеет C/C# ,а js - так, заготовка .
может ты джаву хотел назвать заготовкой, потому что джс это не заготовка, а какуля в ламинаде
бро, может быть , как по мне это все хуета и мне на них ваще пох , я уже 9 лет на C# работаю и как минимум раз в день узнаю новые фишки и раз в неделю познаю новые области применения
и я даже не на пол пути к дзену ....
и я даже не на пол пути к дзену ....
Ты мыслишь как питон. Охуел что ли?
Чо, в чем прикол?
Я на js не пишу но...
Какого хуя к строке прибавляют и вычитают инт?
В чем проблема привести всё к одному типу?
Тут тега приколы_для_итдаунов не хватает.
Либо я вообще не догнал в чем прикол
Я на js не пишу но...
Какого хуя к строке прибавляют и вычитают инт?
В чем проблема привести всё к одному типу?
Тут тега приколы_для_итдаунов не хватает.
Либо я вообще не догнал в чем прикол
Рандомы которые не понимают как работает код увидели "о сматри какой JS тупой, если минус то вичитает а если плюс то приписываед" и форсят эту хуйню вообще не вдаваясь в причины. Кого ебет, что там строка а не число, мем плюсуют же
только от строки он отнимает как от числа, но складывает уже как со строкой. почему??
'+' вполне стандартно используется чтобы склеивать строки вместе. Это норма, так и должно быть.
А с минусом такое не прокатит, тупо нет операции чтобы вычитать что-то из строки, поэтому программа пожимает плечами и решает "значит строку как число прогоним".
А с минусом такое не прокатит, тупо нет операции чтобы вычитать что-то из строки, поэтому программа пожимает плечами и решает "значит строку как число прогоним".
Мне, пока что, больше нравится вот это:
const arr = [];
if (arr) console.log("[] is truethy");
if (arr == false) console.log("however, [] == false");
const arr = [];
if (arr) console.log("[] is truethy");
if (arr == false) console.log("however, [] == false");
Просто нужно использовать это правило https://eslint.org/docs/rules/eqeqeq. И забыть динамическое приведение типов как страшный сон
Часто это упрощает жизнь когда '', null, undefined преобразуются как ложные значения.
Для примитивных типов разумеется, а для объектов и массивов есть isEmpty хелпер из lodash.
Для примитивных типов разумеется, а для объектов и массивов есть isEmpty хелпер из lodash.
Я про преобразование типов в операторах сравнения онли говорю. Забыл добавить
Ну сравнивать массивы в JS вот так arr1 > arr2 это безумие, обычно или сравниваешь длину массивов или то что значение присутствует/отсутствует.
Никому не нужное мнение мимокрокодила.
На языках с динамической типизацией (например, JS) можно писать. Умелый кодер легко бы подметил представленные на картинке ошибки. Однако, проверка типов руками - на мой взгляд довольно безрадостная работа, и при недостатке внимания довольно легко допустить ошибку. С другой стороны, ту же работу может выполнять компилятор языка со статической типизацией. Собирая код, он будет проверять типы автоматически, и, как мне кажется, будет справляться с этой работой намного лучше человека. Так почему же не воспользоваться его возможностями, и использовать в разработке язык со статической типизацией? Выигранное время можно направить на другую конструктивную работу - например, размышления на тему "а зачем я вообще пишу этот код?" .
На языках с динамической типизацией (например, JS) можно писать. Умелый кодер легко бы подметил представленные на картинке ошибки. Однако, проверка типов руками - на мой взгляд довольно безрадостная работа, и при недостатке внимания довольно легко допустить ошибку. С другой стороны, ту же работу может выполнять компилятор языка со статической типизацией. Собирая код, он будет проверять типы автоматически, и, как мне кажется, будет справляться с этой работой намного лучше человека. Так почему же не воспользоваться его возможностями, и использовать в разработке язык со статической типизацией? Выигранное время можно направить на другую конструктивную работу - например, размышления на тему "а зачем я вообще пишу этот код?" .
Статическая типизация даёт ложно чувство безопасности что ошибок нет. В JS когда ожидаешь что что-то может сломаться на любой строке это мотивирует задумываться об архитектуре и тестах.
Пытался запустить штук 7 репозиториев с питоновским кодом где таких "детских" ошибок с типами не должно быть, ага, ни один не заработал.
Питонисты забывают даже про то чтобы "заморозить" используемые пакеты в requirements, после того как что-то обновилось код больше не запустить.
Про отсутствие тестов вообще молчу.
Итого "лёгкий" и продуманный язык где сложнее выстрелить себе в ногу воспитывает говнокодеров, а убогий JS рулит вэбом и не только.
Пытался запустить штук 7 репозиториев с питоновским кодом где таких "детских" ошибок с типами не должно быть, ага, ни один не заработал.
Питонисты забывают даже про то чтобы "заморозить" используемые пакеты в requirements, после того как что-то обновилось код больше не запустить.
Про отсутствие тестов вообще молчу.
Итого "лёгкий" и продуманный язык где сложнее выстрелить себе в ногу воспитывает говнокодеров, а убогий JS рулит вэбом и не только.
Вот вы пидоры! Не все же ещё этот бой смотрели((
Чтобы написать коммент, необходимо залогиниться