LINUX.ORG.RU

Подскажите динозавру, как въехать в нынешний JavaScript

 ,


3

2

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

Но недавно меня обозвали динозавром, за то что написал в резюмешке «Знание JS на уровне JQuery».

Какую книжку посоветуете для изучения именно современного JavaScript ?



Последнее исправление: pup_kin (всего исправлений: 1)

Ответ на: комментарий от javascript

Netscape Navigator 2.0 interprets JavaScript statements embedded directly in an HTML page

Вот, даже не надо было пруф искать, вы сами справились.

LiveWire enables you to create server-based applications similar to common gateway interface (CGI) programs.

А эта фигня не взлетела. Желающих не нашлось на таком дерьме ваять даже CGI скрипты.

bread
()
Ответ на: комментарий от ddidwyll

Да какая разница с чего начинать, всё равно на всём надо хоть немного пописать, чтобы выбрать, а не по советам с ЛОРа

Мое впечатление о людях, которые «немного пописали на всём, чтобы выбрать» — они совершенно не понимают, что несут, не понимают, какой инструмент для чего подходит, и прежде всего это непонимание ярко проявляет себя в том, что они лепят Vue/React туда, где они не нужны. например, кучу людей абсолютно серьезно уверены, что Electron — это обязательно React. Даже не так: они лепят электрон туда, где хватило бы какого-нибудь Qt. Вам, наверное, будет сложно понять это, но многие бургы серьезно считают, что Telegram писан на электроне. Ну потому что все месенжеры писаны на электроне, значит и телеграм тоже. На фоне роста популярности Electron появилась противоположная тенденция — миграция из Electron в натив, когда кучу разрабов походила по этим граблям и поняла, что писать достаточно сложное и интегрированное с платформой приложение в нативе намного проще и дешевле, чем писать на электроне.

Каюсь, я сам был молод и глуп, мне понадобилось много времени, чтобы разобраться в индустрии, но в моем случае все-равно это не сводилось к «на всём хоть немного пописать». Да, я писал и на хаскеле немного, тыкал кложу, очень глубоко надрессировался на C, паскаль, и JS — но это само по себе не дает понимания. Понимание дает весьма редкий для нынешней индустрии опыт продуктовой разработки и поддержки помноженный на критическое отношение к вещам, которые позволили мне наконец понять, что 95% всех советов из книжек и блогов «опытных кодеров» — полная херотень, не связанная с реальностью. Более того, понять, что этого не поняли большинство остальных разрабов, и потому попали в те самые 95%.

Правда, при этом в 95% попали также заказчики, которым не объяснишь, что ТЗ «будем писать на React, потому что фейсбук использует React» — это идиотская затея, как приехать на заправку на бензиновом автомобиле и сказать «лейте мне зимний дизель. Я тут у экспертов узнал, что зимний дизель не замерзает зимой, так что мне теперь голимый бензин не нужен». И твоя задача, как аутсорсера, заключается в том, чтобы залить заказчику дизель, и вовремя свалить, пока он не прочухался. Примерно так работают многочисленные «архитекторы», размещающие вакансии на $60/час про «перведу вашу систему на микросервисы. Богатый опыт, работал на пяти проектах за 2 года».

byko3y ★★★★
()
Ответ на: комментарий от ados

Это всего лишь неявное приведение типов, учитывая что JS должен не падать, хорошо что он умеет на своем уровне понимания работать с такими выражениями. Ваше решение было бы сделать в обоих случаях возвращение «NaN» или как?

mydibyje ★★★
()
Ответ на: комментарий от mydibyje

Это всего лишь неявное приведение типов, учитывая что JS должен не падать, хорошо что он умеет на своем уровне понимания работать с такими выражениями. Ваше решение было бы сделать в обоих случаях возвращение «NaN» или как?

Аргумент инвалид. Что происходит, если на странице исключение в скрипте не отловлено? Ничего. Мне по прежнему очень интересно узнать, откуда этот трешак с типами произошел. PHP и JS получили очень близкие принципы типизации — это не могло быть случайностью, создателю нюхали один и тот же кокаин.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Что происходит, если на странице исключение в скрипте не отловлено? Ничего.

4.2 Выбрасывается событие error.

anonymous
()
Ответ на: комментарий от byko3y

При чем тут лог браузера? Событие выбрасывается для разработчика. Повесь слушателя и обрабатывай неперехваченные исключения.

Так что прекрати врать.

anonymous
()
Ответ на: комментарий от Miguel

Вспомнилось (с):

YOu’ve perfected a robust, rich user experience for shooting yourself in the foot. You then find that bullets are disabled on your gun.

mydibyje ★★★
()

Граждане джаваскриптеры, а подскажите как правильно сделать такое на JS:

$ printf '%04d\n' 123   
0123

То есть вывести четырёхзначное десятичное число с нулями впереди, если разрядов у числа меньше 4.

Простого решения не нашёл, но уверен, что тут эксперты мне подскажут. Спасибо.

anonymous
()
Ответ на: комментарий от Noob_Linux

Прикольная. Жалко что только под ноду. А какого-то стандартного простого решения нет? Хотя… если бы было, навряд ли бы стали писать либу :(

anonymous
()
Ответ на: комментарий от anonymous

Я может быть тупой, но у меня не работает:

$ js78
js> console.log(${123}.padStart(4, 0))
typein:1:13 SyntaxError: missing ) after argument list:
typein:1:13 console.log(${123}.padStart(4, 0))
typein:1:13 .............^

Видимо $ как-то надо определить. А как?

anonymous
()
Ответ на: комментарий от anonymous

А, во! Спасиииибо! Всё чётко 👍

anonymous
()
Ответ на: комментарий от anonymous

Да, согласен. Эх. Много чего надо. Надеюсь успею.

anonymous
()
Ответ на: комментарий от Noob_Linux

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

javascript
()
Ответ на: комментарий от javascript

Чувство юмора заимпортируй себе) Да и кто у нас тут горит?)

Но стандартная библиотека действительно скудная у жс, ой, точнее отсуствует.

Но основная проблема это сегментированность экосистемы жс конечно, нет единых стандартов и проверенных решений, фаза роста ещё далека от завершения, но верим надеемся и ждём.

Noob_Linux ★★★★
()
Ответ на: комментарий от javascript

всякое говно

Да нормальная же либа. Парни вон как постарались. К тому же в стандартном JS, насколько я понимаю, действительно нет printf-подобной функции. А такая иногда очень может пригодиться. И всего-то один файлик добротного кода.

anonymous
()
Ответ на: комментарий от static_lab

А есть уже истории успеха?

Например:

http://deplinenoise.files.wordpress.com/2017/03/webtoolspostmortem.pdf

Или тот же 1С, который не спешит на электрон, а вместо этого делают крестовый код, который дергается из нативной оболочки. Или Facebook, в конце-концов, который тоже ушел на React Native.

byko3y ★★★★
()

Современный JS, это именно JS, без jquery. Беда в том, что чисто сам по себе он мало кому нужен, его юзают в рамках какого-то реактивного фреймворка. Которые суют даже туда, где реактивность даром не упала… Так что учить придётся не столько JS, сколько фреймворк и то, как прикручивать свой код к велосипеду на подобном фреймворке.

lucentcode ★★★★★
()

«JavaScript» is a trademark of Oracle Corporation

anonymous
()
Ответ на: комментарий от byko3y

Мне по прежнему очень интересно узнать, откуда этот трешак с типами произошел.

Таким был изначально задуман веб. Чтобы любые высеры в разметке и скриптах молча игнорились и не беспокоили юзверя. Иначе пользоваться этим было бы невозможно. Представь, ты открыл страничку, а там сыпятся ошибки каждые пару секунд. Ведь вся эта хурма была нестандартизована даже, могло прилететь ваще что угодно. А PHP такой оттого, что это язык шаблонов для того же у..ищного веба. Родовая травма у него. Тут скорее вопрос нужно задать современной индустрии: какого хера вы продолжаете ваять на этом всём дерьмище?

anonymous
()
Ответ на: комментарий от anonymous

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

Но PHP почти писечка в писечку повторил кривизну JS. Это не может быть потому, «что это язык шаблонов».

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Именно поэтому. Всё, что требуется от шаблонизатора, это выплевывать строки. Так что удобненько иметь ЯП, где всё неявно приводится к строке.

anonymous
()

Подскажите динозавру, как въехать в нынешний JavaScript

Эээээээээээээээ, …

Будь таким каким ТЫ ЕСТЬ! ...
anonymous
()
Ответ на: комментарий от anonymous

Товарищ Господин начальник! Это Вы штоле?! Я больше не буду! Извините меня пожалуйста!

pup_kin
() автор топика
Последнее исправление: pup_kin (всего исправлений: 2)
Ответ на: комментарий от anonymous

Именно поэтому. Всё, что требуется от шаблонизатора, это выплевывать строки. Так что удобненько иметь ЯП, где всё неявно приводится к строке

Так почему тогда всё неявно приводится к числу?

byko3y ★★★★
()
Ответ на: комментарий от Shadow

Жаль на JS такое не реализовать, ну разве что переменную, содержащую строку, изначально создавать как объект, а не как примитив.

String.prototype.valueOf = function() {
  if ( isNaN( parseInt( this.toString() ) ) ) return 0;
  else                                        return parseInt( this.toString() );
}

console.log( 2 + 'a'.valueOf() );             // 2
console.log( 2 + '3'.valueOf() );             // 5

console.log( 2 + 'a' );                       // 2a :(, а хотелось бы 2

let str                  = new String( 'b' );
console.log( 2 + str );                       // 2

mydibyje ★★★
()

JavaScript может быть любым, если этот JavaScript - TypeScript!

А если серьезно, то кому он сейчас нужен это ваш чистый JS? Сейчас макаки используют всякие хайповые фреймворки и о JS даже не знают.

ilinsky ★★★★★
()
Последнее исправление: ilinsky (всего исправлений: 1)
Ответ на: комментарий от Korchevatel

Vue, React, Angular

рекомендую начать с Vue, он не такой замудрённый.

Вполне себе замороченный. Из перечисленных тобой ЕМНИП самый простой как раз react – если я ни с чем не путаю, и это тот самый с крошечным футпринтом, где обновление view надо вручную инициировать. А вообще, всё это – ненужное хипстерское говно.

dimgel ★★★★★
()
Последнее исправление: dimgel (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.