JS собеседования – Telegram
JS собеседования
470 subscribers
108 photos
108 links
Подготовка к собеседованиям по JavaScript

Еще больше разобранных вопросов на сайте https://frontview-it.ru

Frontend собеседования - @frontview_it
Frontend работа - @frontview_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Регулярные выражения — это инструмент для поиска и манипуляции текстом на основе шаблонов. Они используются для проверки строк, поиска совпадений, замены текста и извлечения данных с помощью специального синтаксиса.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
📝 Метод pop используется для удаления и возврата последнего элемента массива. Если массив пуст, возвращается undefined. Также можно указать индекс элемента для удаления.


const fruits = ['apple', 'banana', 'cherry'];

// Удаление последнего элемента
const lastFruit = fruits.pop();
console.log(lastFruit); // 'cherry'
console.log(fruits); // ['apple', 'banana']

// Удаление элемента по индексу
const firstFruit = fruits.pop(0); // Не работает, pop удаляет только последний элемент


Метод изменяет исходный массив и возвращает удаленный элемент. Для удаления элементов по индексу лучше использовать splice.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🤔1
👉 Для проверки, является ли значение null или undefined, можно использовать строгое сравнение (===) или оператор логического И (&&).

let value = null;

// Проверка через строгое сравнение
if (value === null || value === undefined) {
console.log('Value is null or undefined');
}


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71👀1
Комментарии в коде используются для пояснения логики или отключения части кода. В JS однострочные комментарии начинаются с //, а многострочные — с /* и заканчиваются */.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
🟠Для проверки поддержки браузером определенной функции используется проверка существования этой функции в объекте window или другом соответствующем объекте.


if (typeof window.localStorage !== 'undefined') {
console.log('localStorage is supported');
} else {
console.log('localStorage is not supported');
}


Если функция или API доступны, условие выполнится. Это позволяет писать код с учетом совместимости с разными браузерами.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Полифил — это код, который добавляет поддержку современных функций в старых браузерах, где они изначально отсутствуют. Он нужен для обеспечения совместимости и работы приложений в разных средах.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
🔥 AJAX (Asynchronous JavaScript and XML) — это технология, позволяющая отправлять и получать данные с сервера без перезагрузки страницы. Основной инструмент для выполнения асинхронных запросов — объект XMLHttpRequest или современный метод fetch.

Пример с использованием fetch:

fetch('https://api.example.com/data')
.then(response => response.json()) // Преобразуем ответ в JSON
.then(data => console.log(data)) // Работаем с данными
.catch(error => console.error('Ошибка:', error)); // Обрабатываем ошибки


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

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🤔1
Set — это коллекция уникальных значений, где каждое значение может встречаться только один раз, что полезно для удаления дубликатов. Map — это коллекция пар ключ-значение, где ключи могут быть любого типа, в отличие от объектов, где ключи всегда строки.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
🔥 Область видимости (scope) определяет доступность переменных, функций и объектов в определенной части кода. В языке существует несколько типов областей видимости: глобальная, функциональная и блочная.

Глобальная область видимости — переменные, объявленные вне функций или блоков, доступны везде в коде. Функциональная область видимости ограничивает доступ переменных, объявленных внутри функции, только этой функцией. Блочная область видимости, появившаяся с введением let и const, ограничивает доступ переменных блоком кода, например, внутри if или for.


const globalVar = 'global'; // Глобальная область видимости

function example() {
const localVar = 'local'; // Функциональная область видимости
if (true) {
const blockVar = 'block'; // Блочная область видимости
}
}


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

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
null — это явно присвоенное значение, обозначающее отсутствие какого-либо объекта или значения. undefined означает, что переменная была объявлена, но ей не было присвоено значение, или свойство объекта не существует.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
▶️ Модули ES6 позволяют организовывать код в отдельные файлы, которые можно импортировать и экспортировать.


// export.js
export const value = 42;
export function greet() { return 'Hello'; }


Для экспорта используются ключевые слова export или export default.


// import.js
import { value, greet } from './export.js';
console.log(value); // 42
console.log(greet()); // Hello


Импорт выполняется с помощью import. Модули поддерживают статический анализ, что позволяет оптимизировать загрузку и устранять неиспользуемый код. Модули всегда работают в строгом режиме (use strict).

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Рефакторинг — это процесс улучшения структуры кода без изменения его внешнего поведения. Для эффективного рефакторинга важно использовать тесты, чтобы убедиться, что функциональность не нарушена, и применять небольшие, инкрементальные изменения.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Асинхронность и синхронность — ключевые концепции, определяющие порядок выполнения кода.

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


console.log('First');
console.log('Second'); // Выполнится только после завершения первой строки


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


console.log('First');
setTimeout(() => console.log('Second'), 1000); // Выполнится через 1 секунду, не блокируя поток
console.log('Third'); // Выполнится сразу после 'First'


Асинхронность достигается через колбэки, промисы и async/await, что делает код более эффективным для задач с ожиданием.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
'use strict' — это директива, которая включает строгий режим выполнения кода. Она помогает избежать неявных ошибок, запрещая использование небезопасных конструкций и улучшая оптимизацию кода.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Чтобы избежать callback hell, можно использовать промисы (Promises) или синтаксис async/await. Промисы позволяют организовать асинхронный код в цепочку, а async/await делает его более читаемым, похожим на синхронный.


// С промисами
fetchData()
.then(response => processData(response))
.then(result => saveData(result))
.catch(error => console.error(error));

// С async/await
async function handleData() {
try {
const response = await fetchData();
const result = await processData(response);
await saveData(result);
} catch (error) {
console.error(error);
}
}


Также можно разбивать код на отдельные функции, чтобы избежать вложенности. Это улучшает читаемость и поддерживаемость.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Метод slice возвращает новый массив или строку, содержащую копию части исходного массива или строки. Он принимает два аргумента: начальный индекс (включительно) и конечный индекс (не включительно), при этом не изменяя исходный массив или строку.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4💯4
🔘 Для подключения внешнего JavaScript-файла к HTML-странице используется тег <noscript> с атрибутом src. Этот тег обычно размещается внутри <head> или перед закрывающим тегом </body>.


<noscript src="path/to/noscript.js"></noscript>


Атрибут src указывает путь к файлу скрипта. Если файл находится в той же папке, что и HTML-документ, достаточно указать имя файла. Для файлов в других папках или на внешних ресурсах используется полный или относительный путь.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤩2
Условное присваивание с помощью логических операторов выполняется через операторы && и ||. Например, a = b || c присвоит переменной a значение b, если оно истинно, иначе — значение c.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🟡 Метод Math.round() округляет число до ближайшего целого. Если дробная часть числа больше или равна 0.5, число округляется вверх, иначе — вниз.


const num1 = 3.7;
const num2 = 3.2;
console.log(Math.round(num1)); // 4
console.log(Math.round(num2)); // 3


Для отрицательных чисел правило аналогично: -3.7 округляется до -4, а -3.2 до -3. Метод всегда возвращает целое число, удаляя дробную часть.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
var имеет функциональную область видимости и может быть переопределен или объявлен повторно. let и const имеют блочную область видимости, но let позволяет изменять значение переменной, а const — нет, так как она предназначена для констант.

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
▶️Метод concat используется для объединения массивов или добавления элементов в конец массива. Он не изменяет исходный массив, а возвращает новый массив, содержащий результат объединения.


const arr1 = [1, 2];
const arr2 = [3, 4];
const result = arr1.concat(arr2); // [1, 2, 3, 4]


Метод может принимать несколько аргументов, включая массивы или отдельные элементы.


const arr = [1];
const newArr = arr.concat(2, [3, 4]); // [1, 2, 3, 4]


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

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ JS собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71