¡ndex.js JavaScript Moment 1 console log(018 == '018'); 2 console log(017 == ‘017'); 3 ■ Defau / javascript :: javascript :: programming languages :: языки программирования :: программирование :: it-юмор :: programming :: it humor :: geek :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek javascript языки программирования программирование 
¡ndex.js
JavaScript Moment
1	console log(018 == '018');
2	console log(017 == ‘017');
3
■ Default: node index.js
true
false,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,javascript,языки программирования,программирование,it humor,geek,javascript,programming
Подробнее
¡ndex.js JavaScript Moment 1 console log(018 == '018'); 2 console log(017 == ‘017'); 3 ■ Default: node index.js true false
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,javascript,языки программирования,программирование,it humor,geek,javascript,programming languages,programming
Еще на тему
Развернуть
Правильно, нахуй прозрачность и интуитивность. В живых останутся самые-самые.
логично с точки зрения спеки жс.
а интуитивность у каждого своя. в любом языке найдутся аспекты которые кому-то да и неинтуитивны.
если тебе от жс бомбит - работай с другим языком, их полно.
ussser ussser 18.01.202418:26 ответить ссылка -5.9
с С++
сразу полюбишь js
john boe john boe 18.01.202418:36 ответить ссылка -0.3
Честно, хз как можно полюбить жс если на крестах сидишь. Разве что если с шаблонами на постой работаешь, то там можно и асемблер полюбить
ну, я когда увидел, как работает наш "фронтовик"
позавидовал, что результат видно прямо на лету
он пишет, а в браузере сразу правки видны

пока мой проект собирается
Пиши тесты
пишу, с ними сборка ещё дольше )
Ну тут да, в этом есть плюс. Тогда можно в сторону пайтона смотреть.
Только эта скорость хорошо так нивелируется разностью браузеров что где-то что-то не поддерживается, где-то по другому работает и тд тп. Много горения по этому поводу слышу от жсовцев, хз мб и есть варианты этого избежать
Есть варрианты: мы, если видим что браузером пользователя что-то не поддерживается -- информируем его об этом, и предлагаем поставить Хром
DeadTR DeadTR 18.01.202420:35 ответить ссылка 0.0
И человек такой, ну да, ради вашей конторы и вашего удобства я сменю мозиллу/сафари/... на хром, а не ваши девы нормально должны поддерживать ваш же сайт, бегу и падаю(с)

Интересно, статистику возвращенцев на другом браузере ведете? Если да то какой примерно процент переключается?
Учитывая, что на лисе сидит сейчас 2.5%, и это пользователи, которые более квалифицированы, чем в среднем по больнице, большинство тех, кто юзает фокс, держат в запасе хром чисто на всякий случай.

Боже, как больно видеть такую статистику у любимого браузера.
Wave Wave 18.01.202420:48 ответить ссылка 2.9
ещё больнее, когда на работе ффокс запрещён политиками и есть только хром/эдж.
ValD ValD 18.01.202423:04 ответить ссылка 1.5
всегда можно поставить Амиго. Даже если ты не хочешь...
Vetala Vetala 19.01.202416:02 ответить ссылка 0.0
Это вообще внутренняя штука. За неё платят до того, как начинают пользоваться. Менеджер продал -- а что дальше уже не наши проблемы.
DeadTR DeadTR 18.01.202420:50 ответить ссылка 0.3
Понялпринял. Интересно у вас, даже наш продукт который частично в вебе под все браузеры пидалят, а не только хром.
JIT компиляторов и hot reload для cpp просто жопой жуй, сотни проектов. Я вот выбирал себе скриптовой язык в движок, но похоже плюну на всё и скриптовым движком будет cpp ибо всё херня.
deanon deanon 24.01.202423:54 ответить ссылка 0.0
>логично с точки зрения спеки жс.

ну значит спека js объективно говно

как минимум, если движок интерпретирует числа начинающиеся с нуля как восьмиричные, то стоит кидать ошибку при недопустимом символе, а не пытаться интерпретировать это как десятичное число. Текущее поведение не нужно ни при каком кейсе, вообще, НАХУЙ ни в какой случае даже в самом крепком наркотрипе!
это уже не говоря о том, что автоматическая интерпретация числа как восьмиричное - это какая-то дичь
В каком месте логично?
Я немного знаком с ЖС и мне нифига не логично.
Никто не знает всю спецификацию, и таких "приколов" должно быть минимум и должно вести себя интуитивно понятно, если хочешь что бы был хороший код (хотя бы в базовых вещах, ладно уж во всяких специфических вещах).
Жс это, имхо, жемчужина алогичности и синтасического сахара который делает только хуже
Чисто ради примера, я за сколько лет в плюсах встретил всего штук 5+- не интуитивного поведения когда пришлось явно лезть в стандарт. А это нихера не простой язык. Как последний пример
if(auto f = foo(); condition)
f= 1
else
f = 2 ??? WTF
Я ее изучал при приходе на текущий проект, у нас часть логики на жс написана. И даже тогда я задвался вопросом - насколько забористые наркотики использовали авторы и где такие достать? И это я тогда еще не углублялся в язык, потом этот вопрос стал пермаментным.

Как все эти ссылки отвечают на вопрос "в каком месте логично?"?
эти ссылки и есть определение логики языка.

если ты имеешь в виду что эта логика для тебя не интуитивная и требует запоминания странных правил чтобы не допускать ошибок на ровном месте - допустим. это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.
ussser ussser 18.01.202418:54 ответить ссылка -2.1
это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.

Вот это, на самом деле, забавно. И ведь исправить его практически невозможно. Тот же php хотя бы хоть тушкой, хоть чучелом, но становится лучше.
Wave Wave 18.01.202418:58 ответить ссылка 4.0
> эти ссылки и есть определение логики языка.
> Никто не знает всю спецификацию
Это минимальный пример с проблемой все-таки

> это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.

Это понятно, но можно вместо создания нового сахара который усложняет язык и понимание как он работает, заняться стабилизацией и унификацией.
На крайняк выкатить версию 2 где не будет алогичных приколов
Версию 2 выкатить не получится. Потому что для этого надо будет все сайты интернета обновить на версию 2, а заодно всех пользователей сети заставить обновиться на новые браузеры, которые используют js2.
Wave Wave 18.01.202420:07 ответить ссылка 0.0
Это не быстрое и не самое легкое действие но получится. Степы +- такие
1) Выкатываем версию 2.0
2) Фиксим лишь критикал в 1.0
3) Браузеры вводят поддержку 2.0 и говорят что через Н лет поддержка 1.0 будет урезана, маркирована как опасная или вообще выпилена
4) По чутка девы перепиливают сайты
5) Много мертвых сайтов улетают в небытие, увы.
Из-за пункта 5 никто и не рискнёт всё это делать. Потому что пункт 5 включает в себя не меньше пары миллиардов сайтов на куче разных библиотек и фреймворков.
Wave Wave 18.01.202420:29 ответить ссылка -0.6
ну то что отмерло дохрена сайтов с флешем то решились, Множество технологий (не только веб) умирали и все живы. На том же 2м пайтоне было напедалено дохрена всего и отказались в пользу 3го.
Рано или поздно прийдется это сделать, ибо такого монстра содержать это ж пиздец
Питон, как и пых, имеют то преимущество, что каждый конкретный сервер может отдельно обновить и рантаймы, и скрипты — наружу будет отдаваться одно и то же, независимо от пользователей.
Другой пример — вёрстка — там дело такое, что в современных браузерах даже самые старые сайты выглядят нормально или как минимум адекватно. Я думаю, единицы таких, которые в IE6 выглядели отлично, а в современном хроме поплыла вёрстка.
С флешом, да, с флешом где-то как-то подходящий пример. Но всё равно масштабы несопоставимы. Сколько сайтов сделаны на флеше, а сколько на жс?
Wave Wave 18.01.202420:44 ответить ссылка 2.4
> ... Сколько сайтов сделаны на флеше, а сколько на жс? ...
Так я и не спорю о проблемах с переходом, я не отрицаю что жс сейчас стандарт веба и он везде, я это понимаю и принимаю полностью. Сама суть о возможности перехода пошагового, не быстрого.
Да, на питоне можно отдельно переделать, но это пришлось переделывать, а те кто не переделывали просто исчезли со временем за ненадобностью/ленью/недостатком финансирования. За условные лет 10 переход вполне реально осуществить как мне кажется
HTML же как-то перевели
imhosep imhosep 18.01.202422:15 ответить ссылка -0.3
Откуда и куда?
Wave Wave 18.01.202422:21 ответить ссылка 0.0
хром и так регулярно что-то объявляет устаревшим и выкидывает из браузера
Ну питон же смог. Долго и со скрипом, но в конце концов большая часть живого-послезного на py3 всетаки перепозлзло.
owlmind owlmind 19.01.202407:28 ответить ссылка -0.2
Смотри, вот сервер, на нём на втором питоне какой-то сайт. Владелец берёт и переписывает его на третий питон и меняет enviroment на тройку. Для посетителей ничего не изменилось. И так с каждым отдельным сервером.
Теперь по жабе[скрипт]. Есть два сервера: на одном заброшенный сайт на жабе, на другом взяли и скрипты на новую. Ладно, два сервера — это условно, потому что сайты могут быть и на одном. И теперь у половины посетителей проблема с первым сайтом, а у половины со вторым.
Масштабируя первую ситуацию на весь интернет — каждый отдельный сервер меняет питон2 на питон3, когда ему это удобно и не доставляя проблем посетителям. Масштабируя вторую — хаос.
Ну да, на питоне не только сайты пишут, но опять же, можно менять каждую конкретную приблуду, не доставляя при этом проблем окружающим и не завися от них.
Wave Wave 19.01.202412:14 ответить ссылка 0.3
>Потому что для этого надо будет все сайты интернета обновить на версию 2

встроенных интерпретаторов в браузере может быть больше одного

более того, такой браузер уже был: ишак + VBScript

и средство для деференциации скриптов тоже есть (было) - аттрибут language тэга script

ждём всем селом, когда в WASM завезут прямой доступ до DOM API
Никто не использует "==" для сравнения. Исключительно "===". Более того, типы принято сравнивать очевидно. У нас, если в строке может быть число, вообще принято заворачивать её в Number.
То бишь, проверка выглядит так:
16 === Number("16")

Вообще, подобного в JS полно, но оно всё рудиментарно.
На пример, ты можешь сокращать используя "~~". И оно даже будет работать. И будет работать быстрее нежели Math.floor
Но зачем?
DeadTR DeadTR 18.01.202420:42 ответить ссылка 0.3
Я это знаю и практикую, кроме --. Хоть я и не на чистом жс пишу, и не особо часто но все же. Но это все через набитие шишек пришлось понимать, хотя за неделю до вроде изучал доки и в кодинге не первый день, а базовых нелогичных вещей полно.
Сама суть, зачем тащить столько рудиментов которые не дают особо нифига, но при этом генерируют дофига геммороя, я хз.
В тех же плюсах есть проблемы с разростанием и рудиментами, но не настолько обширны.
Насчёт никто ты очень сильно погорячился. JS — это не только кровавый ынтырпрайз и хардкорные фронтэндщики, но и люди, которые себе хотят забабахать страничку, фрилансеры, которые одинаково (плохо) умеют в пых, вёрстку и жс, обычные юзеры, которые пишут или даже не пишут, а просто правят для себя чужие скрипты для обезьяноподобных аддонов в браузерах, и так далее.
Wave Wave 18.01.202420:50 ответить ссылка 0.3
многотомная спека не отменяет того факта, что поведение JS в очень многих случаях - алогичная хуета

даже php не настолько угашенный
Кэп?
'017' преобразовывается в число 17. А число 017 записано в восьмеричной системе счисления и равно 15-ти.
018 - это уже просто 18, т.к. восьмеричная система включает в себя только цифры от 0 до 7
Вот чтобы не было таких приколов, и нужна строгая типизация.
Wave Wave 18.01.202418:24 ответить ссылка 4.5
Будут другие приколы. Разрабы ещё те приколисты
Чтобы таких приколов не было, не пиши 017 вместо 17 (а еще нестрогое равенство использовать не стоит). Надуманная проблема
Это могу написать не я, а какой-нибудь долбоёб создать трудноотлавливаемую ошибку, которую язык формально разрешит сделать в силу отсутствия типизации.
Wave Wave 18.01.202418:40 ответить ссылка 3.1
Так используй TS. Я после него на нативном JS вообще не могу работать
DeadTR DeadTR 18.01.202420:45 ответить ссылка 0.0
Я вообще не фронтэндщик. Максимум иногда сталкиваюсь с необходимостью что-то поправить или сделать что-то несложное типа добавить в форму загрузки поддержку д'н'д.
Wave Wave 18.01.202421:02 ответить ссылка 0.0
А там так часто восьмеричная система нужна? Я в шарпах иногда дополняю числа нулем спереди чтоб строки ровнее были.
grixa grixa 18.01.202422:39 ответить ссылка 0.3
Строгая типизация хороша, но в данном примере всё весьма очевидный. Не бывает чисел 017 и 018, тебе твой редактор кода сразу подчеркнёт это и попросит написать по человечески 17 и 18. Сталкивался с похожим когда делал таймер и надо было выставлять 00:00:00.
clearInterval(counterId.value); 0ctal literals are not allowed. Use the syntax ’0ol0'. ts(1121) if (isWork. value == true) {	Просмотреть проблему (ALT+F8) Исправления недоступны
dateNow.value.setHours[(]0, 0,.
Редактор кода может быть другим, вплоть до того, что кто-то что-то в блокноте на скорую руку поправил, что при этом не вылетело с ошибкой компиляции, а просто создаёт где-нибудь сильно в другом месте трудноотлавливаемую проблему.
Wave Wave 18.01.202418:43 ответить ссылка 0.6
Тогда ты сам себе злобный Буратино, раз решил на скорую руку в блокноте править.
А при чём здесь я? Поправить может кто угодно и где угодно. js - это не только кровавый ынтырпрайз на реакте или ноде. Это и простенькие сайты, которые кто-то может захотеть сделать себе сам, потому что ничего сложного, или отдать фрилансеру, который одинаково плохо верстает, пишет на пыхе и жс, и скрипты в браузере (и никто не будет переносить скрипт из редактора violentmonkey в твою любимую IDE), и чёрт знает что и где ещё. И опять же, квалификация тех, кто всё это пишет, колеблется от фронтэндщика с двадцатилетним стажем до полного нуля, а намерения от осчастливить всех и каждого до подставить всех и каждого.
Wave Wave 19.01.202412:21 ответить ссылка 0.3
только она должна быть сделана для людей а не такой доведённый до крайности тоталитаризм как например в Rust. Иначе получится другая заёбывающая в край крайность.
Например var_u16 = var_u8 нельзя без as, хотя очевидно что 8 бит влезет в 16 без проблем. Нет обязательно надо ему так: var_u16 = var_u8 as u16.
Mirn Mirn 18.01.202418:56 ответить ссылка 1.3
Там есть строгая типизация, TypeScript называется. JS уж совсем для каких-то лендингов, в которых если и возникнет такая проблема, то.. нахуй проекты, где создают лендинги
Я скажу крамолу: js — это не только приложения на реакте или ноде, но и просто кто-то себе страничку может сделать или какую-нибудь программку накарябать на коленке, без компилятора или ещё чего-нибудь такого. просто вида [html][script][/script][html]
И ползовательский скрипт для greasemonkey\violetmonkey себе написать или чужой поправить. И так далее. И любой такой человек, не обладающий глубокими познаниями спецификаций, может взять и на ровном месте наткнуться на любой из кучи приколов такого рода. См. известное видео.
Wave Wave 18.01.202420:13 ответить ссылка 1.5
Так пусть этот кто-то спасибо скажет, что он хотя бы на JS все-равно сможет себе страничку на коленке сделать без глубоких знаний спецификации, а такая проблема, которая есть в посте его вряд ли настигнет. Вряд ли кто-то на коленке соберется банковское приложение пилить (земля ему пухом)
Восьмеричная система? Каво нахуй? Откуда и зачем они её вообще взяли?
ktulhu74 ktulhu74 18.01.202419:06 ответить ссылка -1.3
Ну так биты ж)
Merklar Merklar 18.01.202419:47 ответить ссылка -0.7
Мы вообще много систем придумали для исчисления. Двоичную, четверичную, восьмиричную,десятиричную, шестнадцатиричную, и так далее
DeadTR DeadTR 18.01.202420:48 ответить ссылка -1.7
Спасибо. кэп, а нахрена использовать восьмеричную в дефолтном поведении ЯП?
Много где используется. Но в нормальных языках числовые литералы обычно не просто с 0 начинаются а с префикса правильного. Например в Swift 0xAB - шеснацетиричное число, а восьмиричное это 0o74, ну и двоичные вот так 0b01.

Такие записи удобны для всяких битовых операций и обычно используются системы по основанию 16 и 2. А восьмеричная - очень редко
Roxot Roxot 19.01.202401:19 ответить ссылка 0.9
Воо я про это же
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
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 »и	ТТгТ	lJ ■ R т-^И • ■	nTiiÏÏK'H'lilH		i I 11	тш
г		П[»]|	I Г* I ■ . V Я 1 I I в	/»Il 1	хйшТ	Щ
ж		Пш	Hií»lMhHHil!	|Д7	ijTTT	[¡iff » 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