Arrays Similar
Создайте функцию, которая принимает два массива и определяют одинаковые ли они. Одинаковые - значит что у них одинаковые элементы и одинаковое количество элементов.
Примеры:
👉 @frontendInterview
Создайте функцию, которая принимает два массива и определяют одинаковые ли они. Одинаковые - значит что у них одинаковые элементы и одинаковое количество элементов.
Примеры:
const arr1 = [1, 2, 2, 3, 4],
arr2 = [2, 1, 2, 4, 3],
arr3 = [1, 2, 3, 4],
arr4 = [1, 2, 3, "4"]
arraysSimilar(arr1, arr2);
// Should equal true
arraysSimilar(arr2, arr3);
// Should equal false
arraysSimilar(arr3, arr4);
// Should equal false👉 @frontendInterview
Как работают веб-приложения?
Веб-приложения, которыми мы пользуемся каждый день, хоть и сильно отличаются под капотом, на высоком уровне по большей части похожи.
Любое веб-приложение, если оно работает в браузере, работает на 3 основных технологиях: HTML, CSS и JS. Ещё есть WASM, но о нём в этой статье мы говорить не будем.
Все приложения, которыми вы пользуетесь в браузере: GoogleDocs, Notion, Яндекс.Карты, Spotify, YouTube — сделаны с помощью этих технологий.
Но любое сложное приложение — это не только картинка в браузере, это ещё и данные, которые пользователи используют или создают. Эти данные нужно уметь хранить, обрабатывать и выводить.
Хранением и обработкой данных обычно занимается сервер или бэкенд.
Бэкенд — область веб-технологий, работающих на сервере, а также внутренняя часть серверной системы, занимается обработкой данных.
А архитектура, в которой участвуют сервер (бэкенд) и клиент (браузер, фронтенд) называется клиент-серверной.
👉 @frontendInterview
Веб-приложения, которыми мы пользуемся каждый день, хоть и сильно отличаются под капотом, на высоком уровне по большей части похожи.
Любое веб-приложение, если оно работает в браузере, работает на 3 основных технологиях: HTML, CSS и JS. Ещё есть WASM, но о нём в этой статье мы говорить не будем.
Все приложения, которыми вы пользуетесь в браузере: GoogleDocs, Notion, Яндекс.Карты, Spotify, YouTube — сделаны с помощью этих технологий.
Но любое сложное приложение — это не только картинка в браузере, это ещё и данные, которые пользователи используют или создают. Эти данные нужно уметь хранить, обрабатывать и выводить.
Хранением и обработкой данных обычно занимается сервер или бэкенд.
Бэкенд — область веб-технологий, работающих на сервере, а также внутренняя часть серверной системы, занимается обработкой данных.
А архитектура, в которой участвуют сервер (бэкенд) и клиент (браузер, фронтенд) называется клиент-серверной.
👉 @frontendInterview
Фиктивные объекты и данные, моки, стабы
Среди фиктивных объектов можно выделить две группы: моки и стабы.
Стабы (англ. stub) заменяют объекты, но сами ничего не проверяют. Их реализация простая, а зачастую — даже ничего не делает вовсе. Стабы нужны, чтобы заменить собой зависимость в системе и упростить окружение для тестов.
Моки (англ. mock) тоже заменяют зависимости, но при этом позволяют проверять предположения. Они могут следить за вызовами методов, аргументами этих вызовов и т. д. Моки удобны при тестировании функций с побочными эффектами.
Фиктивные объекты можно представить как беговые дорожки, которые заменяют собой настоящий большой парк. Только стабы — это дорожки попроще: крутящаяся лента без дисплея и настроек; а моки — дорожки, которые следят за темпом, ускорением, сердцебиением и т.д.
👉 @frontendInterview
Среди фиктивных объектов можно выделить две группы: моки и стабы.
Стабы (англ. stub) заменяют объекты, но сами ничего не проверяют. Их реализация простая, а зачастую — даже ничего не делает вовсе. Стабы нужны, чтобы заменить собой зависимость в системе и упростить окружение для тестов.
Моки (англ. mock) тоже заменяют зависимости, но при этом позволяют проверять предположения. Они могут следить за вызовами методов, аргументами этих вызовов и т. д. Моки удобны при тестировании функций с побочными эффектами.
Фиктивные объекты можно представить как беговые дорожки, которые заменяют собой настоящий большой парк. Только стабы — это дорожки попроще: крутящаяся лента без дисплея и настроек; а моки — дорожки, которые следят за темпом, ускорением, сердцебиением и т.д.
👉 @frontendInterview
Друзья! Подписывайтесь на канал @british_frontend. Это персональный блог фронтенд разработчика в Англии, где он рассказывает о своем движении по карьере с перспективы рабочего места в UK. Там обсуждаются такие темы как
🤑 Зарплаты
🔥 Отношения между людьми в компании и corporate drama
🇬🇧 Британский юмор
📈 Карьерный рост: как и куда расти
🛂 Иммиграция
🚀 Стартапы и предпринимательство
🧑💻 React, monorepos, legacy code, и другие насущные фронтенд темы
Подпиывайтесь! Чем больше людей, тем лучше дискуссии! 🙌
https://news.1rj.ru/str/british_frontend
🤑 Зарплаты
🔥 Отношения между людьми в компании и corporate drama
🇬🇧 Британский юмор
📈 Карьерный рост: как и куда расти
🛂 Иммиграция
🚀 Стартапы и предпринимательство
🧑💻 React, monorepos, legacy code, и другие насущные фронтенд темы
Подпиывайтесь! Чем больше людей, тем лучше дискуссии! 🙌
https://news.1rj.ru/str/british_frontend
Что такое технический долг?
При разработке программ часто не хватает времени на всё, что хотелось бы сделать. Разработчикам приходится выбирать самые важные задачи и делать в первую очередь их. Обычно больше времени уделяют тому, что видит пользователь. Оставшиеся задачи относятся к улучшению кода и инфраструктуры проекта — такие задачи называют техническим долгом.
От тех. долга нужно избавляться, потому что он вредит проекту. Чем больше долгов накоплено в проекте, тем больше времени будет уходить на разработку новых фич и правку ошибок.
👉 @frontendInterview
При разработке программ часто не хватает времени на всё, что хотелось бы сделать. Разработчикам приходится выбирать самые важные задачи и делать в первую очередь их. Обычно больше времени уделяют тому, что видит пользователь. Оставшиеся задачи относятся к улучшению кода и инфраструктуры проекта — такие задачи называют техническим долгом.
От тех. долга нужно избавляться, потому что он вредит проекту. Чем больше долгов накоплено в проекте, тем больше времени будет уходить на разработку новых фич и правку ошибок.
👉 @frontendInterview
JavaScript для профессиональных веб-разработчиков.
Самое полное руководство по современному JavaScript
Как максимально прокачать свои навыки и стать топовым JS-программистом? Четвертое издание «JavaScript для профессиональных веб-разработчиков» идеально подойдет тем, кто уже имеет базовые знания и опыт разработки на JavaScript. Автор сразу переходит к техническим деталям, которые сделают ваш код чистым и переведут вас с уровня рядового кодера на высоту продвинутого разработчика.
👉 @frontendInterview
Самое полное руководство по современному JavaScript
Как максимально прокачать свои навыки и стать топовым JS-программистом? Четвертое издание «JavaScript для профессиональных веб-разработчиков» идеально подойдет тем, кто уже имеет базовые знания и опыт разработки на JavaScript. Автор сразу переходит к техническим деталям, которые сделают ваш код чистым и переведут вас с уровня рядового кодера на высоту продвинутого разработчика.
👉 @frontendInterview
👍1
Fibonacci Generator
Создайте функцию-генератор чисел Фибоначчи. С каждым новым вызовом функции, она должна возвращать следующее число из последовательности.
Пример:
👉 @frontendInterview
Создайте функцию-генератор чисел Фибоначчи. С каждым новым вызовом функции, она должна возвращать следующее число из последовательности.
Пример:
var fib = genfib();
fib(); // -> returns 0
fib(); // -> returns 1
fib(); // -> returns 1
fib(); // -> returns 2👉 @frontendInterview
content
Когда задано свойство content, то элемент заменяется на значение этого свойства. В качестве значения могут быть переданы различные типы: изображение, градиент или текст.
Пример
👉 @frontendInterview
Когда задано свойство content, то элемент заменяется на значение этого свойства. В качестве значения могут быть переданы различные типы: изображение, градиент или текст.
Пример
a::after {
content: "👉";
margin-right: 5px;
}
Изображение в качестве содержимого. Может применяться к любому элементу. div {
content: url("http://www.example.com/test.png");
}
Все значения ниже могут применяться ТОЛЬКО к псевдоэлементам ::before и ::after.👉 @frontendInterview
Где нельзя применить generic в TypeScript?
Anonymous Quiz
9%
function
58%
enum
13%
class
20%
interface
HTML тег data
Элемент <data> позволяет хранить в своём содержимом данные в формате, понятном человеку, а в атрибуте value — в формате, понятном машинам.
Так можно передать числовое значение для текста:
Жили у бабуси
Ещё один пример: вы разрабатываете интернет-магазин, который занимается продажей компьютеров. У вас есть множество типов, моделей и конфигураций — и у каждого есть свой ID, который используется в базе данных. Эти ID мало что скажут пользователям, поэтому лучше выводить названия компьютеров в формате, который они могут понять. Но тут же в атрибуте value тега <data> можно хранить ID, который используется для удобного доступа к нужной модели:
👉 @frontendInterview
Элемент <data> позволяет хранить в своём содержимом данные в формате, понятном человеку, а в атрибуте value — в формате, понятном машинам.
Так можно передать числовое значение для текста:
Жили у бабуси
<data value="2">два</data> весёлых гуся.Ещё один пример: вы разрабатываете интернет-магазин, который занимается продажей компьютеров. У вас есть множество типов, моделей и конфигураций — и у каждого есть свой ID, который используется в базе данных. Эти ID мало что скажут пользователям, поэтому лучше выводить названия компьютеров в формате, который они могут понять. Но тут же в атрибуте value тега <data> можно хранить ID, который используется для удобного доступа к нужной модели:
<ul>
<li>
<data value="2020138256">
MacBook Pro 13 M1 8 Gb 256 Gb mid. 2020
</data>
</li>
<li>
<data value="2020138512">
MacBook Pro 13 M1 8 Gb 512 Gb mid. 2020
</data>
</li>
</ul>👉 @frontendInterview
Статические свойства и методы класса доступны:
Anonymous Quiz
71%
Напрямую в классе
29%
В инстансах класса
Спред-синтаксис ...
(spread) ... позволяет передавать итерируемые коллекции (например, массивы или строки) как список аргументов функции или добавлять содержащиеся в них элементы в новый массив.
Спред применятся и для объектов, чтобы копировать пары ключ-значение из одного объекта в другой.
Пример:
При вызове функции использовать значения из массива как аргументы:
(spread) ... позволяет передавать итерируемые коллекции (например, массивы или строки) как список аргументов функции или добавлять содержащиеся в них элементы в новый массив.
Спред применятся и для объектов, чтобы копировать пары ключ-значение из одного объекта в другой.
Пример:
При вызове функции использовать значения из массива как аргументы:
function multiplyThreeNumbers(a, b, c) {
return a * b * c
}
const nums = [1, 2, 3]
console.log(multiplyThreeNumbers(...nums))
// 6
В массиве скопировать элементы из другого массива в новый: const donor = ['это', 'старые', 'значения']
const newArray = [...donor, 1, true, 'мама']
console.log(newArray)
// ['это', 'старые', 'значения', 1, true, 'мама']
У объекта скопировать свойства из другого объекта в новый: const persona = { name: 'Иван', lastName: 'Объектов'}
const userData = { ...persona, username: 'killer3000' }
console.log(userData)
// {
// name: "Иван",
// lastName: "Объектов",
// username: "killer3000"
// }