Программирование без дураков
Хотите научиться программировать "less wrong"? Тогда эта книга - для вас. Ведь программирование - это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом - зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует.
👉 @frontendInterview
Хотите научиться программировать "less wrong"? Тогда эта книга - для вас. Ведь программирование - это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом - зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует.
👉 @frontendInterview
Help the Fruit Guy
Вам дан массив строк, представляющий собой набор фруктов - свежих и испорченных. Для испорченных фруктов добавляется приставка rotten.
Создайте функцию, которая заменит испорченные фрукты свежими.
Пример:
Дано -
👉 @frontendInterview
Вам дан массив строк, представляющий собой набор фруктов - свежих и испорченных. Для испорченных фруктов добавляется приставка rotten.
Создайте функцию, которая заменит испорченные фрукты свежими.
Пример:
Дано -
["apple","rottenBanana","apple"]
Результат - ["apple","banana","apple"]👉 @frontendInterview
Как передаются параметры в функцию: по ссылке или по значению?
Передача параметров по значению
Строки, числа, логические значения передаются в функцию по значению. Иными словами при передаче значения в функцию, эта функция получает копию данного значения. Рассмотрим, что это значит в практическом плане:
Передача по ссылке
Объекты и массивы передаются по ссылке. То есть функция получает сам объект или массив, а не их копию.
👉 @frontendInterview
Передача параметров по значению
Строки, числа, логические значения передаются в функцию по значению. Иными словами при передаче значения в функцию, эта функция получает копию данного значения. Рассмотрим, что это значит в практическом плане:
function change(x){
x = 2 * x;
console.log("x in change:", x);
}
var n = 10;
console.log("n before change:", n); // n before change: 10
change(n); // x in change: 20
console.log("n after change:", n); // n after change: 10
Функция change получает некоторое число и увеличивает его в два раза. При вызове функции change ей передается число n. Однако после вызова функции мы видим, что число n не изменилось, хотя в самой функции произошло увеличение значения параметра. Потому что при вызове функция change получает копию значения переменной n. И любые изменения с этой копией никак не затрагивают саму переменную n.Передача по ссылке
Объекты и массивы передаются по ссылке. То есть функция получает сам объект или массив, а не их копию.
function change(user){
user.name = "Tom";
}
var bob ={
name: "Bob"
};
console.log("before change:", bob.name); // Bob
change(bob);
console.log("after change:", bob.name); // Tom
В данном случае функция change получает объект и меняет его свойство name. В итоге мы увидим, что после вызова функции изменился оригинальный объект bob, который передавался в функцию.👉 @frontendInterview
👍2
Что такое псевдомассив arguments?
Объект arguments это локальная переменная, доступная внутри любой (нестрелочной) функции. Объект arguments позволяет ссылаться на аргументы функции внутри неё. Он состоит из переданных в функцию аргументов, индексация начинается с 0. Например, если в функцию было передано 3 аргумента, обратиться к ним можно следующим образом:
👉 @frontendInterview
Объект arguments это локальная переменная, доступная внутри любой (нестрелочной) функции. Объект arguments позволяет ссылаться на аргументы функции внутри неё. Он состоит из переданных в функцию аргументов, индексация начинается с 0. Например, если в функцию было передано 3 аргумента, обратиться к ним можно следующим образом:
arguments[1]Аргументам может быть присвоено значение:
arguments[2]
arguments[1] = 'new value';👉 @frontendInterview
"Javanoscript developer. Professional" - это хардкорный онлайн-курс для web-разработчиков по продвинутым возможностям JS и его фреймворков.
Справитесь ли вы с уровнем курса? Покажет вступительный тест.
📍Пройдите тестирование, чтобы:
● оценить свои навыки
● получить доступ к демо-занятиям курса
● занять место по специальной цене
● получить доступ в закрытое сообщество JS-разработчиков
👉 Пройти полное тестирование: https://clck.ru/uKCcE
Справитесь ли вы с уровнем курса? Покажет вступительный тест.
📍Пройдите тестирование, чтобы:
● оценить свои навыки
● получить доступ к демо-занятиям курса
● занять место по специальной цене
● получить доступ в закрытое сообщество JS-разработчиков
👉 Пройти полное тестирование: https://clck.ru/uKCcE
Для чего используется оператор !! (двойного отрицания)?
Это не новый оператор, это всего лишь два оператора !, просто они записаны подряд. Что это даёт? Тут тоже всё довольно просто. Допустим у вас есть функция, которая возвращает какой-то результат: строку, число, объект и т.д. А вам необходимо получить от этой функции true или false. Вот два записанных подряд оператора ! и делают именно это. Если функция вернёт строку, отличное от 0 число, объект, массив — в общем любое правдивое значение, то выражение !! превратит его в true, в противном случае вы получите false.
👉 @frontendInterview
Это не новый оператор, это всего лишь два оператора !, просто они записаны подряд. Что это даёт? Тут тоже всё довольно просто. Допустим у вас есть функция, которая возвращает какой-то результат: строку, число, объект и т.д. А вам необходимо получить от этой функции true или false. Вот два записанных подряд оператора ! и делают именно это. Если функция вернёт строку, отличное от 0 число, объект, массив — в общем любое правдивое значение, то выражение !! превратит его в true, в противном случае вы получите false.
👉 @frontendInterview
Какое значение примет result?
Anonymous Quiz
2%
"null"
52%
"function"
12%
"number"
20%
выведется ошибка
14%
"undefined"
A Smarter Way to Learn JavaScript: The New Tech-Assisted Approach that Requires Half the Effort
Автор книги Майкл Майерс утверждает, что понимание и удержание информации — две главные проблемы при изучении JS. Исходя из этого, формат учебника построен на постоянном закреплении теоретических знаний через решение повседневных задач. Поэтому книгу Майерса можно найти на полках как новичков, так и профи. При небольшом объёме учебника автору удалось соблюсти баланс между фундаментальными понятиями и практической части.
👉 @frontendInterview
Автор книги Майкл Майерс утверждает, что понимание и удержание информации — две главные проблемы при изучении JS. Исходя из этого, формат учебника построен на постоянном закреплении теоретических знаний через решение повседневных задач. Поэтому книгу Майерса можно найти на полках как новичков, так и профи. При небольшом объёме учебника автору удалось соблюсти баланс между фундаментальными понятиями и практической части.
👉 @frontendInterview
Get key/value pairs as arrays
Создайте функцию, которая принимает объект и возвращает ключи и значения этого объекта в двух отдельных массивах.
Пример:
👉 @frontendInterview
Создайте функцию, которая принимает объект и возвращает ключи и значения этого объекта в двух отдельных массивах.
Пример:
keysAndValues({a: 1, b: 2, c: 3})
// should return [['a', 'b', 'c'], [1, 2, 3]]👉 @frontendInterview
Что такое Pure Component в React?
Pure Components - это компоненты, которые не рендерятся повторно при обновлении их состояния и пропов одними и теми же значениями. Если значение предыдущего и нового состояния и пропов равны, компонент не отрисовывается повторно. "Чистые" компоненты ограничивают повторный рендеринг, обеспечивая повышение производительности приложения.
Особенности "чистых" компонентов:
1. Предотвращают повторный рендеринг компонента, если его состояние и пропы остались прежними
2. Неявно реализуют метод shouldComponentUpdate()
3. state и props сравниваются поверхностно
4. В ряде случаев, такие компоненты являются более производительными
"Чистые" компоненты похожи на обычные, за исключением того, что они неявно реализуют метод shouldComponentUpdate(), проводя поверхностное сравнение состояния и пропов. Если текущие и следующие состояние и пропы являются одинаковыми, повторный рендеринг компонента не выполняется.
👉 @frontendInterview
Pure Components - это компоненты, которые не рендерятся повторно при обновлении их состояния и пропов одними и теми же значениями. Если значение предыдущего и нового состояния и пропов равны, компонент не отрисовывается повторно. "Чистые" компоненты ограничивают повторный рендеринг, обеспечивая повышение производительности приложения.
Особенности "чистых" компонентов:
1. Предотвращают повторный рендеринг компонента, если его состояние и пропы остались прежними
2. Неявно реализуют метод shouldComponentUpdate()
3. state и props сравниваются поверхностно
4. В ряде случаев, такие компоненты являются более производительными
"Чистые" компоненты похожи на обычные, за исключением того, что они неявно реализуют метод shouldComponentUpdate(), проводя поверхностное сравнение состояния и пропов. Если текущие и следующие состояние и пропы являются одинаковыми, повторный рендеринг компонента не выполняется.
👉 @frontendInterview
Курс «Английский для IT-профессий» от Яндекс Практикума
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Определим ваш уровень языка, расскажем про обучение и ответим на все вопросы
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Определим ваш уровень языка, расскажем про обучение и ответим на все вопросы