Читать книгу: «100 вопросов на собеседование по JavaScript. С подробными объяснениями», страница 2

Шрифт:

15. Что такое RESTful API? Какие HTTP методы обычно используются для взаимодействия с RESTful API?

RESTful API (Representational State Transfer API) представляет собой стандарт архитектуры веб-сервисов, основанный на принципах REST. Он использует стандартные протоколы и методы HTTP для обмена данными между клиентом и сервером. Основные принципы REST включают отсутствие состояния (stateless), клиент-серверную архитектуру и использование унифицированных интерфейсов.

HTTP методы (или HTTP глаголы) обеспечивают различные операции в RESTful API:

1)      GET. Используется для запроса данных или информации от сервера. Не должен изменять состояние сервера.

2)      POST. Используется для создания новых ресурсов на сервере. Часто используется при отправке данных формы.

3)      PUT. Используется для обновления существующего ресурса на сервере. Полностью заменяет текущее состояние ресурса.

4)      PATCH. Аналогичен PUT, но применяется для частичного обновления ресурса, а не его полной замены.

5)      DELETE. Используется для удаления ресурса на сервере.

6)      OPTIONS. Используется для запроса информации о возможных методах HTTP, поддерживаемых сервером для указанного ресурса.

7)      HEAD. Аналогичен GET, но возвращает только заголовки без тела ответа. Часто используется для проверки доступности ресурса или получения метаданных.

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

9)      CONNECT. Используется для установки туннеля к серверу, идентифицированному по ресурсу.

Эти методы предоставляют различные способы взаимодействия с ресурсами на сервере в рамках RESTful API.

16. Что такое Callback функции в JavaScript? Как они используются при работе с асинхронным кодом?

Callback функции – это ключевой механизм в асинхронном JavaScript, который позволяет управлять асинхронными операциями и выполнением кода после завершения этих операций.

Когда мы работаем с асинхронным кодом, например, при загрузке данных с сервера или выполнении запросов, мы не можем ожидать завершения этих операций, так как это может занять время. Вместо этого, мы используем callback функции, чтобы указать, что нужно сделать после завершения определенной асинхронной операции.

Пример использования callback функции при выполнении асинхронной операции, например, загрузке данных с сервера:

function fetchData(callback) {

// Процесс загрузки данных с сервера

setTimeout(function() {

const data = 'Данные с сервера';

callback(data); // Вызываем callback функцию и передаем ей полученные данные

}, 2000); // Например, имитация задержки загрузки данных на 2 секунды

}

function displayData(data) {

console.log('Получены данные:', data);

}

fetchData(displayData); // Вызываем функцию fetchData и передаем ей displayData в качестве callback функции

В этом примере fetchData – это функция, которая имитирует загрузку данных с сервера. Она принимает callback функцию в качестве аргумента и вызывает ее, когда данные будут доступны. displayData – это callback функция, которая принимает данные и выводит их в консоль после их получения.

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

17. Чем отличаются методы массивов map (), filter () и reduce ()? Приведите примеры использования каждого из них?

Методы массивов map(), filter() и reduce() – каждый из этих методов предоставляет различные способы обработки массивов в JavaScript:

·         map() – создает новый массив, содержащий результат вызова предоставленной функции для каждого элемента исходного массива. Этот метод не изменяет исходный массив, а возвращает новый массив с результатами применения функции к каждому элементу.

const numbers = [1, 2, 3, 4];

const doubled = numbers.map(num => num * 2);

/ doubled: [2, 4, 6, 8]

·         filter() – создает новый массив, содержащий только те элементы исходного массива, для которых функция возвращает true. Этот метод также не изменяет исходный массив, а возвращает новый массив с отфильтрованными элементами.

const numbers = [1, 2, 3, 4];

const evenNumbers = numbers.filter(num => num % 2 === 0);

// evenNumbers: [2, 4]

·         reduce() – применяет функцию-аккумулятор к каждому элементу массива, сводя его к единственному значению. Этот метод может выполняться на массиве для вычисления суммы, подсчета количества элементов, объединения элементов и многого другого.

const numbers = [1, 2, 3, 4];

const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

// sum: 10

в данном примере 0 – это начальное значение аккумулятора.

18. Что такое Promise в JavaScript? Какие преимущества они предоставляют при работе с асинхронным кодом?

Promise – это объект, который представляет результат успешного выполнения или ошибку асинхронной операции. Они позволяют работать с асинхронным кодом, управлять последовательностью операций и обрабатывать результаты этих операций.

19. Что такое async и await в JavaScript? Как они упрощают написание асинхронного кода?

Ключевые слова async и await помогают упростить асинхронное программирование. Когда функция объявляется с ключевым словом async, она всегда возвращает Promise. await используется внутри async функций для приостановки выполнения кода до тех пор, пока Promise не завершится, и затем возвратит результат этого Promise. Это позволяет писать асинхронный код в более линейном стиле, без использования цепочек колбэков или методов обработки Promise.

Например:

function fetchData() {

return new Promise(resolve => {

setTimeout(() => {

resolve('Данные с сервера');

}, 2000);

});

}

async function getData() {

try {

const result = await fetchData();

console.log(result); // Выведет: 'Данные с сервера'

} catch (error) {

console.error('Ошибка:', error);

}

}

getData();

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

20. Какие методы объекта Math существуют в JavaScript? Приведите примеры их использования?

Math в JavaScript предоставляет различные методы для выполнения математических операций:

Math.random() – возвращает псевдослучайное число от 0 (включительно) до 1 (не включительно);

const randomNum = Math.random();

console.log(randomNum); // Выведет случайное число между 0 и 1

Math.floor() – округляет число вниз до ближайшего целого числа;

const num = 4.9;

const roundedDown = Math.floor(num);

console.log(roundedDown); // Выведет: 4

Math.ceil() – округляет число вверх до ближайшего целого числа:

const num = 4.1;

const roundedUp = Math.ceil(num);

console.log(roundedUp); // Выведет: 5

Math.abs() – возвращает абсолютное значение числа:

const num = -10;

const absoluteValue = Math.abs(num);

console.log(absoluteValue); // Выведет: 10

Math.max() и Math.min() – возвращают максимальное и минимальное значение из набора чисел соответственно:

const maxNum = Math.max(10, 5, 8);

console.log(maxNum); // Выведет: 10

const minNum = Math.min(3, 7, 1);

console.log(minNum); // Выведет: 1

Все эти методы Math являются полезными инструментами для выполнения математических операций в JavaScript, предоставляя различные возможности работы с числами в коде.

21. Что такое DOM (Document Object Model) в контексте веб-разработки? Какие методы доступа и манипуляции с элементами DOM вы знаете?

DOM (Document Object Model) – это иерархическое представление веб-страницы как структуры объектов, которое браузер может интерпретировать и изменять содержимое и стиль страницы. Оно представляет собой древовидную структуру, где каждый элемент страницы (текст, изображения, ссылки и т. д.) представлен в виде объекта, и эти объекты связаны между собой. Доступ и манипуляции с элементами DOM осуществляются при помощи JavaScript с использованием методов, таких как getElementById, querySelector, appendChild, removeChild и другие, которые позволяют находить, создавать и изменять элементы на веб-странице.

22. Чем отличаются let, const и var в контексте области видимости (scope) в JavaScript?

let и const имеют блочную область видимости, они доступны только в блоке кода, в котором были объявлены, или во внутренних блоках. var, имеет функциональную область видимости и его переменные могут быть доступны за пределами блока, в котором они были объявлены.

23. Что такое асинхронные функции (async functions) в JavaScript? Как они работают и в чем их преимущества?

Асинхронные функции (async functions) – это функции, которые возвращают объект Promise. Ключевые слова async и await позволяют писать асинхронный код в более линейном стиле, без использования колбэков или цепочек промисов. async перед функцией указывает, что она возвращает Promise, а await используется внутри async функций для ожидания выполнения Promise и получения его результата.

24. Какие методы у массивов в JavaScript помимо map (), filter () и reduce ()?

Методы у массивов в JavaScript помимо map(), filter() и reduce(): pop, push, shift, unshift, concat.

push() – добавляет один или несколько элементов в конец массива и возвращает новую длину массива.

const arr = [1, 2, 3];

arr.push(4, 5);

console.log(arr); // Выведет: [1, 2, 3, 4, 5]

pop() – удаляет последний элемент из массива и возвращает его значение.

const arr = [1, 2, 3];

const lastElement = arr.pop();

console.log(lastElement); // Выведет: 3

console.log(arr); // Выведет: [1, 2]

shift() – удаляет первый элемент из массива и возвращает его значение, сдвигая все остальные элементы на одну позицию влево.

const arr = [1, 2, 3];

const firstElement = arr.shift();

console.log(firstElement); // Выведет: 1

console.log(arr); // Выведет: [2, 3]

unshift() – добавляет один или несколько элементов в начало массива и возвращает новую длину массива.

const arr = [1, 2, 3];

arr.unshift(0, -1);

console.log(arr); // Выведет: [0, -1, 1, 2, 3]

concat() – объединяет два или более массива и возвращает новый массив, не изменяя исходные массивы.

const arr1 = [1, 2];

const arr2 = [3, 4];

const concatenated = arr1.concat(arr2);

console.log(concatenated); // Выведет: [1, 2, 3, 4]

slice() – возвращает новый массив, содержащий часть исходного массива. Он принимает начальный и конечный индексы (не включая конечный) как параметры.

const arr = [1, 2, 3, 4, 5];

const sliced = arr.slice(1, 4);

console.log(sliced); // Выведет: [2, 3, 4]

splice() – изменяет содержимое массива, удаляя или заменяя элементы. Он принимает индекс начала изменения, количество элементов для удаления и, при необходимости, элементы для вставки.

const arr = [1, 2, 3, 4, 5];

arr.splice(2, 1, 'a', 'b');

console.log(arr); // Выведет: [1, 2, 'a', 'b', 4, 5]

forEach() – выполняет функцию обратного вызова для каждого элемента массива.

const arr = [1, 2, 3];

arr.forEach(element => console.log(element * 2)); // Выведет: 2, 4, 6

includes() – проверяет, содержит ли массив определенный элемент, возвращая true или false.

const arr = [1, 2, 3];

const isIncluded = arr.includes(2);

console.log(isIncluded); // Выведет: true

Бесплатный фрагмент закончился.

1 600 ₽

Начислим

+48

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе
Возрастное ограничение:
12+
Дата выхода на Литрес:
20 декабря 2023
Объем:
51 стр. 2 иллюстрации
ISBN:
9785006204843
Правообладатель:
Издательские решения
Формат скачивания:
Аудио
Средний рейтинг 0 на основе 0 оценок
Аудио
Средний рейтинг 0 на основе 0 оценок
Текст
Средний рейтинг 0 на основе 0 оценок
Kambag'al dehqonning pop bilan hisob-kitob qilgani
Народное творчество (Фольклор)
Аудио
Средний рейтинг 5 на основе 2 оценок
Текст
Средний рейтинг 4,8 на основе 9 оценок
Текст
Средний рейтинг 5 на основе 14 оценок