Мы вам перезвоним

@callforward Like 1

Выкладываю и разбираю вопросы, которые встречаются на собеседованиях по фронтенду
Вопросы присылайте @djamah
Channel's geo & Language
Ukraine, Russian


Contact author
Channel's geo
Ukraine
Channel language
Russian
Category
Technologies
Added to index
26.02.2018 04:02
Recent update
25.05.2019 01:07
5 552
members
~6.7k
avg post reach
~1.2k
daily reach
~18
posts per month
121.4%
ERR %
3.81
citation index
Forwards & channel mentions
17 mentions of channel
0 post mentions
1 forwards
Recent posts
Deleted
With mentions
Forwards
#Задачка22

Напишите функцию на es5, которая позволяет узнать равен ли один из входных параметров 42.

Решений может быть несколько, предложите найболее изящное с вашей точки зрения.
Вот смеются все над чуваками, которые на диване телик смотрят, а я, если честно, сам такой( Ну только ютубчик вместо телика, конечно.

Так вот вопрос: а где вы берете полезные видосики для прокрастинации? Ну только технические чтобы.

Годное постят на @itlecture, но надо еще, если знаете где еще брать интересное, присылайте мне на @djamah
#Задачка21

За последние полгода почему-то не смог втретить ни одного джуна, который бы одним предложением правильно ответил на вопрос:

От чего зависит, каким будет this в функции?
Ну раз большинство считает, что уметь верстать нужно (я, кстати, тоже так думаю), то вот вам простой, с виду, вопрос:

#Задачка20
Относительно чего работает position: absolute?

p.s. Только хорошо подумайте. Хороший ответ — полный ответ, а не обрывок правильного ответа)

p.p.s. Многие заметили, что давненько не было ответов на задачки. Все потому, что мой доклад (https://t.me/callforward/8) набрал тыщу лайков, и уже этой весной будет продолжение. Там разберу все неотвеченные задачки.

p.p.p.s. Если у вас (или вы) спрашивали что-то интересное, присылайте мне в личку на @djamah. И мне сейчас очень не хватает примеров плохих вопросов)
Read more
А как вы считаете, в 2k19 фронтендщику нужно уметь верстать?
Опрос
  • Конечно, нужно!
  • Нет, пусть этим занимаются специально обученные люди.
2692 голосов
#Задачка19
По моей статистике половина людей, которые считают себя синьерами, не могу не запутаться и внятно объяснить следующие термины:
— Область видимости
— Лексическое окружение
— Скоуп
— `Scope`
— Внешнее лексическое окружение

Да, это как бы про замыкания, и про то, что моего шестиминутного ролика недостаточно, чтобы стать экспертом, оно для первого знакомства же...
#Задачка18, короткая в постановке, длинная в ответе)
Расскажите, как работает for ... of ...
Записал новое видео — https://youtu.be/RPuFz93Gvpk
Ничего хардкорного, старые добрые замыкания.

Не буду прикреплять здесь лайки/дизлайки, они есть на ютубе, и там мы им будем очень рады)
#Задачка17
Денис подкинул вчера классную задачку, спасибо ему:)
Написать функцию, которая переворачивает цифры в числе. Например, если мы передаем ей цифру 1532, то возвращает она 2351.
Но нельзя использовать ничего перебирающего, ни циклов, ни перебирающих методов.

Правильные ответы и свои задачки присылайте мне на @djamah
👍 145
👎 29
Есть жанр постов в телеграм-каналах, которые я презираю отдельно. Это когда авторы после большого перерыва пишут о том, как страшно заняты, и снова пропадают надолго. (И вот я здесь, а на месте этого абзаца было жевание соплей о том, что скоро я разгребу все клевые задачки, которые вы мне присылаете и буду писать).

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

Лайк, шер, репост)
https://youtu.be/e0Wyor9ilVg

И еще, хотел спросить, а вам вообще интересны ссылки на видео, что я публикую?
👍 217
👎 18
Read more
Сегодня вышло видео, в котором я рассказываю о this и прототипах.

Это, как всегда, лучшее видео по теме)

В самом видео я много гакаю и эээкаю, все как обычно)

https://www.youtube.com/watch?v=0vs6WkNyzec

Пишите комменты, если понравилось, или не понравилось, то ставьте лайки и дизлайки, подписывайтесь на канал и пересылайте друзьям)) Это все влияет на то, что ютуб покажет видео большему количеству людей, а мне это важно.

* в видео есть одна ошибка, но ее заметили в комментах на ютубе раньше, чем я успел написать в канал)

Ну и открываем стол заказов, пишите мне в личку на @djamah, о чем снять следующее видео. Автора лучшего вопроса ждет слава и почет)
Read more
Есть такая байка из ранней истории Яндекса:
Какая-то светлая голова предложила заблокировать в рабочей сети некоторые сайты, соцсетей тогда не было. Наверное, хотели забанить какой-нибудь пикабу или что там было в конце девяностых.
На это один из топов (возможно, главный сисадмин) сказал: "Если кто-то из моих сотрудников не сможет обойти наш бан, мне нужно будет их уволить за техническую некомпетентность."
Если кому-то теперь будет неудобно читать этот канал... ну вы поняли.
Read more
#Задачка16
Костя прислал хорошую задачку. Она перекликается с одной из прошлых, но если вы не можете ее решить, не заглядывая в консоль, что-то вы не дочитали)

function Person (name) {
if (name) {
this.options.name = name;
}
};

Person.prototype.options = {
name: 'Default name'
};

var foo = new Person('foo');
var bar = new Person('bar');

console.log(foo.options.name);
console.log(bar.options.name);

Что выведется в консоль? Почему? Как это исправить?

Ответы присылайте мне в личку — @djamah
Свои задачки присылайте туда же.
Read more
Сегодня наконец вышло видео, в котором я рассказываю о DOM-событиях.

Само собой, это лучше видео по теме)

Сняли его мы полтора месяца назад, а потом я долго тупил)
В самом видео я много гакаю и эээкаю, все как вы любите.

https://youtu.be/Sczl4lT7huk

Пишите комменты, если понравилось, или не понравилось, ставьте лайки и дизлайки, подписывайтесь на канал)) Это все влияет на то, что ютуб покажет видео большему количеству людей, а мне это важно.

P. S. В конце видео мой ответ на #Задачка13

* в видео есть одна несостыковка, кто заметил — молодец
Read more
Спасибо всем кто присылал ответы на #Задачка15, особенно Игорю
А вообще, код который был в задаче прислала мне когда-то Катя как ответ на домашнее задание, она же и сделала разбор своих былых ошибок.
Текста много, потому гист — https://gist.github.com/katfastovets/95c873d06c45a9756cae3f8ab1eebc55
Кстати, вот канал (@andrew_r_notes) с которого я перепостил прошлое сообщение очень клевый блог разработчика, в котором есть как крутые истории из разработческой жизни так и небольшие разборы разных аспектов фронтендерских технологий.
Ведет его Андрей Романов, автор того самого @forwebdev на котором много клевых ссылок всегда
На собеседованиях иногда просят назвать способы отправки запроса на сервер. Помимо очевидных fetch/XMLHttpRequest и прочих джаваскриптовых штук есть более экзотические способы вроде .

Вчера узнал о ещё более экзотическом и извращённом способе отправки запроса на сервер с помощью CSS:


body::after {
content: url('...');
}


Этот способ может использоваться для аналитики и трекинга пользователей, у которых отключен JS. Можно отследить клики по ссылкам, ввод текста в инпуты, клики по чекбоксам, длительность ховера на каком-либо элементе; также можно приблизительно определить браузер и операционную систему пользователя. Подробности — https://github.com/jbtronics/CrookedStyleSheets

Защититься от этого можно только отключив CSS. Параноикам пора переходить на текстовые браузеры :–)
Read more
#Задачка15 — простите, многобукв, но весело же)

Допустим вы собеседуетесь на позицию, на которой вам предстоит не только код писать, но и менторить совсем зеленых джунов. И для этого абстрактного джуна была задача:

Сделать квадрат, который по клику меняет цвет (серый -> синий -> зеленый -> желтый).

Все по идее просто и понятно, а присылают вам такой (работающий!) код:

.sq {
width: 100px;
height: 100px;
margin: 15px;
background-color: gray;
}
.blue {
background-color: blue;
}
.yellow {
background-color: yellow;
}
.green {
background-color: green;
}





var $sq = document.querySelector('.sq');

$sq.addEventListener('click', function() {
this.classList.toggle('blue');
this.addEventListener('click', function() {
this.classList.toggle('yellow');
this.addEventListener('click', function() {
this.classList.toggle('green');
});
});
});


Со стилями и разметкой вроде бы все ок (никакого БЭМа в условии задачи не было), но вот с js есть проблемка...

Присылайте на @djamah текст назидательного разьяснения, которое бы вы написали в ответ на эту работу, где вы с высоты своей мудрости коротко и ясно объясняете в чем проблема, почему так делать нельзя и как нужно.

p.s. На следующей неделе я опубликую разбор от автора кода)
Read more
Народ, а кто что читает в телеграме про фронтенд?
Напишите мне в личку на @djamah, ну кроме @forwebdev только, его то и так ясно, что все читают)
Самый полный разбор #Задачка14 прислал Игорь, спасибо ему!
Публикую с минимальными редакторскими правками:

===
Мораль такова, что вызывать функции нужно с _явным_ указанием параметров, а не абы как.

При вызове в функцию Array.map передаются следующие параметры:
currentValue, index, array
пруф — https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/map

А у глобального метода parseInt два параметра:
string, radix - причем radix является обязательным параметром, если его не указывать возможны непредсказуемые результаты
пруф — https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/parseInt

В данном примере происходит вызов метода parseInt с аргументами из функции Array.map:
parseInt(currentValue, index), где index: 0, 1, 2, 3

В итоге:
radix = 0 - поведение по умолчанию, результат 2 в десятичной системе
radix = 1 - допускается значение radix от 2 до 36, NaN
radix = 2 - для двоичной системы допускаются символы 0, 1 и NaN
radix = 3 - результат 2, но в троичной системе исчисления

Думаю, что задача не на знание специфики JS и его версий, а на культуру кода:
за использование кода, приведенного в задаче, нужно расстреливать из рогаток на месте. Никаких сокращений, только явно указанные параметры функций.
===

От себя добавлю, что любой психодел, который вам встречается где бы то ни было, это всегда отличный повод заглянуть в спецификацию, ну не подряд же ее читать в конце-то концов))

А если вам все равно непонятно, можно посмотреть мой разбор этой задачки на видео (я там разжевываю), ссылка на нужную минуту:

https://youtu.be/ncaWoyLINoI?t=26m25s
Read more