Правильно, нахуй прозрачность и интуитивность. В живых останутся самые-самые.
логично с точки зрения спеки жс.
а интуитивность у каждого своя. в любом языке найдутся аспекты которые кому-то да и неинтуитивны.
если тебе от жс бомбит - работай с другим языком, их полно.
а интуитивность у каждого своя. в любом языке найдутся аспекты которые кому-то да и неинтуитивны.
если тебе от жс бомбит - работай с другим языком, их полно.
с С++
сразу полюбишь js
сразу полюбишь js
Честно, хз как можно полюбить жс если на крестах сидишь. Разве что если с шаблонами на постой работаешь, то там можно и асемблер полюбить
ну, я когда увидел, как работает наш "фронтовик"
позавидовал, что результат видно прямо на лету
он пишет, а в браузере сразу правки видны
пока мой проект собирается
позавидовал, что результат видно прямо на лету
он пишет, а в браузере сразу правки видны
пока мой проект собирается
Пиши тесты
Ну тут да, в этом есть плюс. Тогда можно в сторону пайтона смотреть.
Только эта скорость хорошо так нивелируется разностью браузеров что где-то что-то не поддерживается, где-то по другому работает и тд тп. Много горения по этому поводу слышу от жсовцев, хз мб и есть варианты этого избежать
Только эта скорость хорошо так нивелируется разностью браузеров что где-то что-то не поддерживается, где-то по другому работает и тд тп. Много горения по этому поводу слышу от жсовцев, хз мб и есть варианты этого избежать
JIT компиляторов и hot reload для cpp просто жопой жуй, сотни проектов. Я вот выбирал себе скриптовой язык в движок, но похоже плюну на всё и скриптовым движком будет cpp ибо всё херня.
>логично с точки зрения спеки жс.
ну значит спека js объективно говно
как минимум, если движок интерпретирует числа начинающиеся с нуля как восьмиричные, то стоит кидать ошибку при недопустимом символе, а не пытаться интерпретировать это как десятичное число. Текущее поведение не нужно ни при каком кейсе, вообще, НАХУЙ ни в какой случае даже в самом крепком наркотрипе!
ну значит спека js объективно говно
как минимум, если движок интерпретирует числа начинающиеся с нуля как восьмиричные, то стоит кидать ошибку при недопустимом символе, а не пытаться интерпретировать это как десятичное число. Текущее поведение не нужно ни при каком кейсе, вообще, НАХУЙ ни в какой случае даже в самом крепком наркотрипе!
это уже не говоря о том, что автоматическая интерпретация числа как восьмиричное - это какая-то дичь
В каком месте логично?
Я немного знаком с ЖС и мне нифига не логично.
Никто не знает всю спецификацию, и таких "приколов" должно быть минимум и должно вести себя интуитивно понятно, если хочешь что бы был хороший код (хотя бы в базовых вещах, ладно уж во всяких специфических вещах).
Жс это, имхо, жемчужина алогичности и синтасического сахара который делает только хуже
Чисто ради примера, я за сколько лет в плюсах встретил всего штук 5+- не интуитивного поведения когда пришлось явно лезть в стандарт. А это нихера не простой язык. Как последний пример
if(auto f = foo(); condition)
f= 1
else
f = 2 ??? WTF
Я немного знаком с ЖС и мне нифига не логично.
Никто не знает всю спецификацию, и таких "приколов" должно быть минимум и должно вести себя интуитивно понятно, если хочешь что бы был хороший код (хотя бы в базовых вещах, ладно уж во всяких специфических вещах).
Жс это, имхо, жемчужина алогичности и синтасического сахара который делает только хуже
Чисто ради примера, я за сколько лет в плюсах встретил всего штук 5+- не интуитивного поведения когда пришлось явно лезть в стандарт. А это нихера не простой язык. Как последний пример
if(auto f = foo(); condition)
f= 1
else
f = 2 ??? WTF
правила конвертации при сравнениях
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality#description
парсинг числовых литералов
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#numeric_literals
конвертация строк в числа
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#number_coercion
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality#description
парсинг числовых литералов
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#numeric_literals
конвертация строк в числа
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#number_coercion
Я ее изучал при приходе на текущий проект, у нас часть логики на жс написана. И даже тогда я задвался вопросом - насколько забористые наркотики использовали авторы и где такие достать? И это я тогда еще не углублялся в язык, потом этот вопрос стал пермаментным.
Как все эти ссылки отвечают на вопрос "в каком месте логично?"?
Как все эти ссылки отвечают на вопрос "в каком месте логично?"?
эти ссылки и есть определение логики языка.
если ты имеешь в виду что эта логика для тебя не интуитивная и требует запоминания странных правил чтобы не допускать ошибок на ровном месте - допустим. это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.
если ты имеешь в виду что эта логика для тебя не интуитивная и требует запоминания странных правил чтобы не допускать ошибок на ровном месте - допустим. это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.
это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.
Вот это, на самом деле, забавно. И ведь исправить его практически невозможно. Тот же php хотя бы хоть тушкой, хоть чучелом, но становится лучше.
Вот это, на самом деле, забавно. И ведь исправить его практически невозможно. Тот же php хотя бы хоть тушкой, хоть чучелом, но становится лучше.
> эти ссылки и есть определение логики языка.
> Никто не знает всю спецификацию
Это минимальный пример с проблемой все-таки
> это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.
Это понятно, но можно вместо создания нового сахара который усложняет язык и понимание как он работает, заняться стабилизацией и унификацией.
На крайняк выкатить версию 2 где не будет алогичных приколов
> Никто не знает всю спецификацию
Это минимальный пример с проблемой все-таки
> это характерное явление для языков не проектировавшихся под те масштабы к которым они в итоге пришли.
Это понятно, но можно вместо создания нового сахара который усложняет язык и понимание как он работает, заняться стабилизацией и унификацией.
На крайняк выкатить версию 2 где не будет алогичных приколов
Версию 2 выкатить не получится. Потому что для этого надо будет все сайты интернета обновить на версию 2, а заодно всех пользователей сети заставить обновиться на новые браузеры, которые используют js2.
Никто не использует "==" для сравнения. Исключительно "===". Более того, типы принято сравнивать очевидно. У нас, если в строке может быть число, вообще принято заворачивать её в Number.
То бишь, проверка выглядит так:
16 === Number("16")
Вообще, подобного в JS полно, но оно всё рудиментарно.
На пример, ты можешь сокращать используя "~~". И оно даже будет работать. И будет работать быстрее нежели Math.floor
Но зачем?
То бишь, проверка выглядит так:
16 === Number("16")
Вообще, подобного в JS полно, но оно всё рудиментарно.
На пример, ты можешь сокращать используя "~~". И оно даже будет работать. И будет работать быстрее нежели Math.floor
Но зачем?
Я это знаю и практикую, кроме --. Хоть я и не на чистом жс пишу, и не особо часто но все же. Но это все через набитие шишек пришлось понимать, хотя за неделю до вроде изучал доки и в кодинге не первый день, а базовых нелогичных вещей полно.
Сама суть, зачем тащить столько рудиментов которые не дают особо нифига, но при этом генерируют дофига геммороя, я хз.
В тех же плюсах есть проблемы с разростанием и рудиментами, но не настолько обширны.
Сама суть, зачем тащить столько рудиментов которые не дают особо нифига, но при этом генерируют дофига геммороя, я хз.
В тех же плюсах есть проблемы с разростанием и рудиментами, но не настолько обширны.
Насчёт никто ты очень сильно погорячился. JS — это не только кровавый ынтырпрайз и хардкорные фронтэндщики, но и люди, которые себе хотят забабахать страничку, фрилансеры, которые одинаково (плохо) умеют в пых, вёрстку и жс, обычные юзеры, которые пишут или даже не пишут, а просто правят для себя чужие скрипты для обезьяноподобных аддонов в браузерах, и так далее.
многотомная спека не отменяет того факта, что поведение JS в очень многих случаях - алогичная хуета
даже php не настолько угашенный
даже php не настолько угашенный
Кэп?
'017' преобразовывается в число 17. А число 017 записано в восьмеричной системе счисления и равно 15-ти.
018 - это уже просто 18, т.к. восьмеричная система включает в себя только цифры от 0 до 7
018 - это уже просто 18, т.к. восьмеричная система включает в себя только цифры от 0 до 7
Вот чтобы не было таких приколов, и нужна строгая типизация.
Будут другие приколы. Разрабы ещё те приколисты
Чтобы таких приколов не было, не пиши 017 вместо 17 (а еще нестрогое равенство использовать не стоит). Надуманная проблема
Это могу написать не я, а какой-нибудь долбоёб создать трудноотлавливаемую ошибку, которую язык формально разрешит сделать в силу отсутствия типизации.
Так используй TS. Я после него на нативном JS вообще не могу работать
Я вообще не фронтэндщик. Максимум иногда сталкиваюсь с необходимостью что-то поправить или сделать что-то несложное типа добавить в форму загрузки поддержку д'н'д.
А там так часто восьмеричная система нужна? Я в шарпах иногда дополняю числа нулем спереди чтоб строки ровнее были.
Редактор кода может быть другим, вплоть до того, что кто-то что-то в блокноте на скорую руку поправил, что при этом не вылетело с ошибкой компиляции, а просто создаёт где-нибудь сильно в другом месте трудноотлавливаемую проблему.
Тогда ты сам себе злобный Буратино, раз решил на скорую руку в блокноте править.
А при чём здесь я? Поправить может кто угодно и где угодно. js - это не только кровавый ынтырпрайз на реакте или ноде. Это и простенькие сайты, которые кто-то может захотеть сделать себе сам, потому что ничего сложного, или отдать фрилансеру, который одинаково плохо верстает, пишет на пыхе и жс, и скрипты в браузере (и никто не будет переносить скрипт из редактора violentmonkey в твою любимую IDE), и чёрт знает что и где ещё. И опять же, квалификация тех, кто всё это пишет, колеблется от фронтэндщика с двадцатилетним стажем до полного нуля, а намерения от осчастливить всех и каждого до подставить всех и каждого.
только она должна быть сделана для людей а не такой доведённый до крайности тоталитаризм как например в Rust. Иначе получится другая заёбывающая в край крайность.
Например var_u16 = var_u8 нельзя без as, хотя очевидно что 8 бит влезет в 16 без проблем. Нет обязательно надо ему так: var_u16 = var_u8 as u16.
Например var_u16 = var_u8 нельзя без as, хотя очевидно что 8 бит влезет в 16 без проблем. Нет обязательно надо ему так: var_u16 = var_u8 as u16.
Там есть строгая типизация, TypeScript называется. JS уж совсем для каких-то лендингов, в которых если и возникнет такая проблема, то.. нахуй проекты, где создают лендинги
Я скажу крамолу: js — это не только приложения на реакте или ноде, но и просто кто-то себе страничку может сделать или какую-нибудь программку накарябать на коленке, без компилятора или ещё чего-нибудь такого. просто вида [html][script][/script][html]
И ползовательский скрипт для greasemonkey\violetmonkey себе написать или чужой поправить. И так далее. И любой такой человек, не обладающий глубокими познаниями спецификаций, может взять и на ровном месте наткнуться на любой из кучи приколов такого рода. См. известное видео.
И ползовательский скрипт для greasemonkey\violetmonkey себе написать или чужой поправить. И так далее. И любой такой человек, не обладающий глубокими познаниями спецификаций, может взять и на ровном месте наткнуться на любой из кучи приколов такого рода. См. известное видео.
Так пусть этот кто-то спасибо скажет, что он хотя бы на JS все-равно сможет себе страничку на коленке сделать без глубоких знаний спецификации, а такая проблема, которая есть в посте его вряд ли настигнет. Вряд ли кто-то на коленке соберется банковское приложение пилить (земля ему пухом)
Восьмеричная система? Каво нахуй? Откуда и зачем они её вообще взяли?
Ну так биты ж)
Мы вообще много систем придумали для исчисления. Двоичную, четверичную, восьмиричную,десятиричную, шестнадцатиричную, и так далее
Спасибо. кэп, а нахрена использовать восьмеричную в дефолтном поведении ЯП?
Много где используется. Но в нормальных языках числовые литералы обычно не просто с 0 начинаются а с префикса правильного. Например в Swift 0xAB - шеснацетиричное число, а восьмиричное это 0o74, ну и двоичные вот так 0b01.
Такие записи удобны для всяких битовых операций и обычно используются системы по основанию 16 и 2. А восьмеричная - очень редко
Такие записи удобны для всяких битовых операций и обычно используются системы по основанию 16 и 2. А восьмеричная - очень редко
Воо я про это же
Чтобы написать коммент, необходимо залогиниться