Flatten and sort an array
Задача:
Задав двумерный массив целых чисел, верните отсортированную версию массива, в которой все целые числа расположены в порядке возрастания.
Пример:
Учитывая [[3, 2, 1], [4, 6, 5], [], [9, 7, 8]], ваша функция должна вернуть [1, 2, 3, 4, 5, 6, 7, 8, 9].
Дополнение:
Пожалуйста, помните, что JavaScript по умолчанию сортирует объекты в алфавитном порядке
👉 @frontendInterview
Задача:
Задав двумерный массив целых чисел, верните отсортированную версию массива, в которой все целые числа расположены в порядке возрастания.
Пример:
Учитывая [[3, 2, 1], [4, 6, 5], [], [9, 7, 8]], ваша функция должна вернуть [1, 2, 3, 4, 5, 6, 7, 8, 9].
Дополнение:
Пожалуйста, помните, что JavaScript по умолчанию сортирует объекты в алфавитном порядке
👉 @frontendInterview
👍1
Замыкания в JavaScript
Замыкание в JavaScript - это комбинация функции и лексического окружения, в котором она была определена. Это позволяет ей обращаться к переменным и функциям этого лексического окружения в дальнейшем.
В следующем примере мы определяем функцию makeCounter(), которая фактически является фабричной функцией. При вызове она возвращает дочернюю функцию, которая имеет доступ к лексическому окружению внешней функции, то-есть функции makeCounter(). Таким образом, возвращаемая функция запоминает переменную counter и в последующем изменяет ее значение.
👉 @frontendInterview
Замыкание в JavaScript - это комбинация функции и лексического окружения, в котором она была определена. Это позволяет ей обращаться к переменным и функциям этого лексического окружения в дальнейшем.
В следующем примере мы определяем функцию makeCounter(), которая фактически является фабричной функцией. При вызове она возвращает дочернюю функцию, которая имеет доступ к лексическому окружению внешней функции, то-есть функции makeCounter(). Таким образом, возвращаемая функция запоминает переменную counter и в последующем изменяет ее значение.
function makeCounter(initial = 0) {
let counter = initial;
return function() {
return counter += 1;
}
}
const counterA = makeCounter(0);
console.log(counterA()); // 1
console.log(counterA()); // 2
const counterB = makeCounter(100);
console.log(counterB()); // 101
console.log(counterB()); // 102
👉 @frontendInterview
👎3👍1
Как получить информацию о браузере пользователя?
Свойство window.navigator возвращает объект описания приложения (user agent), которое выполняет скрипт. В подавляющем большинстве случаев это приложение — браузер. Объект содержит свойства, описывающие браузер, и методы для выполнения действий.
Часто используемые свойства:
- userAgent возвращает строку, которая содержит название браузера.
- languages возвращает массив предпочитаемых языков в порядке предпочтительности. Первый в списке будет язык, который возвращает navigator.language.
👉 @frontendInterview
Свойство window.navigator возвращает объект описания приложения (user agent), которое выполняет скрипт. В подавляющем большинстве случаев это приложение — браузер. Объект содержит свойства, описывающие браузер, и методы для выполнения действий.
Часто используемые свойства:
- userAgent возвращает строку, которая содержит название браузера.
navigator.userAgent
// "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:93.0) Gecko/20100101 Firefox/93.0"
- language возвращает предпочитаемый язык интерфейса в виде языкового тега.- languages возвращает массив предпочитаемых языков в порядке предпочтительности. Первый в списке будет язык, который возвращает navigator.language.
navigator.language
// "ru"
navigator.languages
// ["ru", "en-US", "es-ES"]
- cookieEnabled возвращает true, если браузер пользователя поддерживает куки и они включены, false в противном случае.👉 @frontendInterview
👍2
Вот 17 авторских обучающих IT каналов по самым востребованным областям программирования:
Выбирай своё направление:
Please open Telegram to view this post
VIEW IN TELEGRAM
Улучшаем JavaScript-код с помощью стрелочных функций
В этой статье расскажу, как стрелочные функции помогают сокращать записи функций, делают код визуально чище и как использовать их без потери смысла. Также покажу, чем обычные функции проигрывают стрелочным и почему одно нельзя заменить другим.
👉 @frontendInterview
В этой статье расскажу, как стрелочные функции помогают сокращать записи функций, делают код визуально чище и как использовать их без потери смысла. Также покажу, чем обычные функции проигрывают стрелочным и почему одно нельзя заменить другим.
👉 @frontendInterview
👍3
Что такое Long Polling?
Anonymous Quiz
27%
Техника, при которой клиент отправляет запросы с фиксированным интервалом
66%
Техника, позволяющая клиенту ждать ответа от сервера до появления новых данных или таймаута
2%
Метод для управления памятью в веб-приложениях
5%
Способ оптимизации серверной производительности за счёт кэширования
Блочная модель
Каждый элемент на веб-странице — это прямоугольник, к которому во время отрисовки браузеры применяют CSS-свойства. Чтобы конечные размеры элементов не были для вас сюрпризом и вы точно понимали, из чего они складываются, нужно разобраться с одной из основных концепций вёрстки — блочной моделью.
Блочная модель, она же box model — это алгоритм расчёта размеров каждого отдельного элемента на странице, которым браузеры пользуются при отрисовке.
Блочная модель состоит из нескольких CSS-свойств, влияющих на размеры элемента:
- width — ширина элемента;
- height — высота элемента;
- padding — внутренние отступы от контента до краёв элемента;
- border — рамка, идущая по краю элемента;
- margin — внешние отступы вокруг элемента.
👉 @frontendInterview
Каждый элемент на веб-странице — это прямоугольник, к которому во время отрисовки браузеры применяют CSS-свойства. Чтобы конечные размеры элементов не были для вас сюрпризом и вы точно понимали, из чего они складываются, нужно разобраться с одной из основных концепций вёрстки — блочной моделью.
Блочная модель, она же box model — это алгоритм расчёта размеров каждого отдельного элемента на странице, которым браузеры пользуются при отрисовке.
Блочная модель состоит из нескольких CSS-свойств, влияющих на размеры элемента:
- width — ширина элемента;
- height — высота элемента;
- padding — внутренние отступы от контента до краёв элемента;
- border — рамка, идущая по краю элемента;
- margin — внешние отступы вокруг элемента.
👉 @frontendInterview
👍4❤1
Modern Full-Stack Development: Using TypeScript, React, Node.js, Webpack, Python, Django, and Docker, 2nd Edition
Изучите, что могут предложить React, Node, Python, Django, TypeScript, Webpack и Docker по отдельности, и как они все вместе подходят для разработки современных приложений.
Вы начнете с создания прочного фундамента знаний и быстро расширите его, создав три различных реальных приложения. Это не просто простые, надуманные примеры, а реальные приложения, которые вы можете установить на свои серверы и использовать в реальных условиях.
👉 @frontendInterview
Изучите, что могут предложить React, Node, Python, Django, TypeScript, Webpack и Docker по отдельности, и как они все вместе подходят для разработки современных приложений.
Вы начнете с создания прочного фундамента знаний и быстро расширите его, создав три различных реальных приложения. Это не просто простые, надуманные примеры, а реальные приложения, которые вы можете установить на свои серверы и использовать в реальных условиях.
👉 @frontendInterview
Clock
Часы показывают h часов, m минут и s секунд после полуночи.
Ваша задача - написать функцию, которая возвращает время с полуночи в миллисекундах.
Пример:
👉 @frontendInterview
Часы показывают h часов, m минут и s секунд после полуночи.
Ваша задача - написать функцию, которая возвращает время с полуночи в миллисекундах.
Пример:
h = 0
m = 1
s = 1
result = 61000
👉 @frontendInterview
Please open Telegram to view this post
VIEW IN TELEGRAM
Где заканчивается js, а где начинается DOM?
JS заканчивается там, где он перестает быть просто набором инструкций и начинает манипулировать DOM, т.е. когда скрипт обращается к элементам страницы (например, через document.getElementById), он начинает взаимодействовать с DOM для изменения структуры, стилей или содержимого веб-страницы.
JavaScript
Используется для создания динамических и интерактивных веб-страниц. Он работает в браузере и на сервере (с помощью Node.js). JavaScript сам по себе не имеет знаний о веб-странице или ее структуре. Он предоставляет синтаксис и базовые возможности для выполнения вычислений, обработки данных, работы с объектами и функциями.
Основные возможности:
Управление переменными и типами данных:
Объявление переменных (
Управление потоком:
Условные операторы (
Работа с функциями:
Объявление и вызов функций. Работа с анонимными и стрелочными функциями.
Объектно-ориентированное программирование:
Создание объектов и классов. Наследование и полиморфизм.
DOM (Document Object Model)
Это программный интерфейс для веб-документов. Он представляет структуру HTML-документа как дерево объектов, которые могут быть изменены скриптами (например, JavaScript). DOM позволяет JavaScript взаимодействовать с HTML-страницей: изменять элементы, стили, атрибуты и содержимое страницы.
Основные возможности:
Доступ к элементам:
Получение элементов по идентификатору(
Изменение структуры документа:
Создание новых элементов (
Изменение содержимого и атрибутов:
Изменение текста и HTML-содержимого (
События:
Добавление обработчиков событий (
Примеры
Изменение содержимого элемента:
Создание и добавление нового элемента:
Граница
JavaScript — это язык программирования, который предоставляет базовые возможности для работы с данными и логикой.
DOM — это интерфейс, который предоставляет структуру HTML-документа и позволяет JavaScript взаимодействовать с этой структурой.
👉 @frontendInterview
JS заканчивается там, где он перестает быть просто набором инструкций и начинает манипулировать DOM, т.е. когда скрипт обращается к элементам страницы (например, через document.getElementById), он начинает взаимодействовать с DOM для изменения структуры, стилей или содержимого веб-страницы.
JavaScript
Используется для создания динамических и интерактивных веб-страниц. Он работает в браузере и на сервере (с помощью Node.js). JavaScript сам по себе не имеет знаний о веб-странице или ее структуре. Он предоставляет синтаксис и базовые возможности для выполнения вычислений, обработки данных, работы с объектами и функциями.
Основные возможности:
Управление переменными и типами данных:
Объявление переменных (
var
, let
, const
). Работа с различными типами данных (строки, числа, объекты, массивы).Управление потоком:
Условные операторы (
if
, else
, switch
). Циклы (for
, while
, do-while
).Работа с функциями:
Объявление и вызов функций. Работа с анонимными и стрелочными функциями.
Объектно-ориентированное программирование:
Создание объектов и классов. Наследование и полиморфизм.
DOM (Document Object Model)
Это программный интерфейс для веб-документов. Он представляет структуру HTML-документа как дерево объектов, которые могут быть изменены скриптами (например, JavaScript). DOM позволяет JavaScript взаимодействовать с HTML-страницей: изменять элементы, стили, атрибуты и содержимое страницы.
Основные возможности:
Доступ к элементам:
Получение элементов по идентификатору(
document.getElementById
), классу(document.getElementsByClassName
), тегу(document.getElementsByTagName
), селектору(document.querySelector
, document.querySelectorAll
).Изменение структуры документа:
Создание новых элементов (
document.createElement
). Добавление и удаление элементов (appendChild
, removeChild
).Изменение содержимого и атрибутов:
Изменение текста и HTML-содержимого (
element.textContent
, element.innerHTML
). Управление атрибутами (element.setAttribute
, element.getAttribute
).События:
Добавление обработчиков событий (
element.addEventListener
). Создание и отправка пользовательских событий.Примеры
Изменение содержимого элемента:
<!DOCTYPE html>
<html>
<head>
<title>Пример DOM</title>
</head>
<body>
<div id="myDiv">Исходный текст</div>
<button onclick="changeText()">Изменить текст</button>
<script>
function changeText() {
// Получение элемента DOM
const myDiv = document.getElementById('myDiv');
// Изменение содержимого элемента
myDiv.textContent = 'Измененный текст';
}
</script>
</body>
</html>
Создание и добавление нового элемента:
<!DOCTYPE html>
<html>
<head>
<title>Пример добавления элемента</title>
</head>
<body>
<button onclick="addElement()">Добавить элемент</button>
<script>
function addElement() {
// Создание нового элемента
const newElement = document.createElement('p');
newElement.textContent = 'Новый параграф';
// Добавление нового элемента в DOM
document.body.appendChild(newElement);
}
</script>
</body>
</html>
Граница
JavaScript — это язык программирования, который предоставляет базовые возможности для работы с данными и логикой.
DOM — это интерфейс, который предоставляет структуру HTML-документа и позволяет JavaScript взаимодействовать с этой структурой.
👉 @frontendInterview
👍1