Блог Горошко Андрея javascript JavaScript: шпаргалка для собеседования

JavaScript: шпаргалка для собеседования

JavaScript: справочник для разработчиков

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

Ответы на частые вопросы на собеседованиях.

  • Типы данных в JavaScript
    • Основные типы:
      • Числовые: number
      • Строковые: string
      • Логические: boolean
      • Пустые: null и undefined
    • Ссылочные типы:
      • Объекты: object
      • Массивы: array
      • Функции: function
  • let, var, const
    • let и const — это объявления переменных.
    • let — переменная может быть изменена только внутри блока, в котором она объявлена.
    • const — переменная не может быть изменена после объявления.
    • var — устаревший способ объявления переменных.
  • == и ===
    • == — оператор равенства. Сравнивает значения переменных.
    • === — строгий оператор равенства. Сравнивает значения и типы переменных.
  • setTimeout и setInterval
    • setTimeout() — функция, которая запускает функцию через заданное количество миллисекунд.
    • setInterval() — функция, которая запускает функцию через заданное количество миллисекунд, и повторяет это действие снова и снова, пока её не остановят.
  • use strict
    • use strict — модификатор, который включает строгий режим в JavaScript.
    • В строгом режиме JavaScript более строг к синтаксису и ошибкам.
  • Callback
    • Callback — это функция, которая вызывается другой функцией.

Объекты

  • Методы объекта:
    • hasOwnProperty() — проверяет, является ли свойство собственным для объекта.
    • isPrototypeOf() — проверяет, является ли один объект прототипом другого объекта.
    • propertyIsEnumerable() — проверяет, является ли свойство перечисляемым.
    • toLocaleString() — возвращает строковое представление объекта в соответствии с настройками локали.
    • toString() — возвращает строковое представление объекта.
  • Глубокое и неглубокое копирование
    • Глубокое копирование — копирование объекта вместе со всеми его свойствами, включая свойства объектов, которые являются свойствами этого объекта.
    • Неглубокое копирование — копирование только значений свойств объекта.
  • Удаление значения объекта
    • delete object.property — удаляет свойство property из объекта object.
  • Деструктуризация
    • Деструктуризация — это синтаксический сахар, который позволяет извлекать значения из объектов и массивов.
    • Например, следующий код:

JavaScript

const obj = {
  name: "John Doe",
  age: 30,
};

const { name, age } = obj;

… эквивалентен следующему коду:

JavaScript

const name = obj.name;
const age = obj.age;
  • new Map
    • new Map() — создает объект типа Map, который представляет собой ассоциативный массив.
  • weakMap
    • weakMap() — создает объект типа weakMap, который представляет собой ассоциативный массив, в котором ссылки на объекты не являются сильными.
  • this
    • this — ключевое слово, которое указывает на текущий объект.
  • apply(), call(), bind()
    • apply() — вызывает функцию, используя переданные аргументы и контекст.
    • call() — вызывает функцию, используя переданные аргументы и контекст.
    • bind() — возвращает новую функцию, которая вызывается с переданными аргументами и контекстом.

Массивы

  • Методы массивов:
    • push() — добавляет элемент в конец массива.
    • pop() — удаляет последний элемент из массива.
    • shift() — удаляет первый элемент из массива.
    • unshift() — добавляет элемент в начало массива.
    • slice() — возвращает часть массива.
    • splice() — удаляет часть массива и возвращает её.
    • sort() — сортирует массив.
    • reverse() — переворачивает массив.
  • map, forEach, reduce
    • map() — возвращает новый массив, каждый элемент которого является результатом применения функции к соответствующему элементу исходного массива.
    • forEach() — вызывает функцию для каждого элемента массива
    • reduce: reduce() применяет функцию к аккумулятору и каждому значению массива (слева направо), чтобы свести его к одному значению.
    • new Set: new Set создает новый объект Set, который позволяет хранить уникальные значения любого типа.
    • WeakSet: WeakSet — это коллекция, в которой каждый элемент должен быть объектом, и они могут быть собраны сборщиком мусора, если нет ссылок на них вне WeakSet.

ООП в JavaScript

  • ООП — это парадигма программирования, которая позволяет создавать сложные объекты из простых.
  • В JavaScript объекты создаются с помощью ключевого слова new.
  • Классы — это шаблоны, которые используются для создания объектов.
  • Объекты могут иметь свойства и методы.
  • Фабрики — это объекты, которые создают другие объекты.
  • Обертки — это объекты, которые предоставляют дополнительный функционал для других объектов.
  • Экземпляры — это конкретные объекты, созданные на основе класса.

Окружение JavaScript разработчика

  • Git — это система управления версиями, которая используется для отслеживания изменений в коде.
  • npm — это менеджер пакетов, который используется для установки и управления зависимостями.
  • Webpack — это инструмент, который используется для сборки JavaScript-кода.

Синхронность и асинхронность

  • Синхронность — это выполнение кода в последовательном порядке.
  • Асинхронность — это выполнение кода в параллельном порядке.
  • Поток — это единица выполнения в JavaScript.
  • Callback — это функция, которая вызывается после завершения асинхронного действия.
  • Promise — это объект, который представляет асинхронное действие.
  • Fetch — это метод, который используется для получения данных из сети.

Анимации и Canvas на JS

  • Анимация — это изменение состояния объекта во времени.
  • Canvas — это двухмерная область рисования, которая используется для создания графики.

Паттерны в JavaScript

  • Паттерн — это общий шаблон решения проблемы.
  • В JavaScript существуют различные паттерны, которые можно использовать для решения различных задач.
  • Порождающие паттерны — это паттерны, которые используются для создания объектов.
  • Структурные паттерны — это паттерны, которые используются для изменения структуры данных.
  • Поведенческие паттерны — это паттерны, которые используются для изменения поведения объекта.

Структуры данных в JavaScript

  • Структура данных — это способ организации данных.
  • В JavaScript существуют различные структуры данных, которые можно использовать для хранения и обработки данных.
  • Очередь — это структура данных, в которой элементы добавляются в конец и удаляются с начала.
  • Список — это структура данных, в которой элементы могут добавляться в любое место.
  • Стек — это структура данных, в которой элементы добавляются и удаляются с конца.
  • Граф — это структура данных, которая состоит из узлов и связей между ними.
  • Дерево — это структура данных, в которой элементы организованы иерархически.

Вот более подробные объяснения некоторых из этих тем:

ООП в JavaScript

Объектно-ориентированное программирование (ООП) — это парадигма программирования, которая позволяет создавать сложные объекты из простых. В JavaScript объекты создаются с помощью ключевого слова new. Например:

JavaScript

const person = new Object();
person.name = "John Doe";
person.age = 30;

Этот код создает объект person, у которого есть свойства name и age.

Классы — это шаблоны, которые используются для создания объектов. Классы в JavaScript определяются с помощью ключевого слова class:

JavaScript

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

const person = new Person("John Doe", 30);

Этот код определяет класс Person, который имеет конструктор, принимающий два аргумента: имя и возраст. Конструктор устанавливает свойства name и age объекта person.

Объекты могут иметь свойства и методы. Свойства — это данные, которые хранятся в объекте. Методы — это функции, которые могут выполняться объектом. Например:

JavaScript

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log("Hello, my name is " + this.name);
  }
}

const person = new Person("John Doe", 30);
person.sayHello(); // Hello, my name is John Doe

Этот код определяет класс Person, который имеет свойство name и метод sayHello(). Метод sayHello() выводит сообщение «Hello, my name is » + name.

Фабрики — это объекты, которые создают другие объекты. Фабрики могут использоваться для создания объектов, которые имеют сложный или повторяющийся процесс создания.

Продвинутый

Promise: Promise представляет собой объект, представляющий окончательное завершение или сбой асинхронной операции.

Разница между стрелочными функциями и обычной функцией: Стрелочные функции не имеют своего собственного this и arguments, и они не могут быть использованы в качестве конструкторов.

Event Loop: Event Loop — это концепция, которая обрабатывает и выполняет задачи из очереди событий, таких как обработчики событий или обратные вызовы.

Рекурсия и главное правило рекурсии: Рекурсия — это когда функция вызывает саму себя. Главное правило рекурсии — это то, что она должна иметь условие выхода, чтобы предотвратить бесконечный цикл.

Замыкание: Замыкание — это функция, которая имеет доступ к своей собственной области видимости, области видимости внешней функции и глобальной области видимости.

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

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

Babel: Babel — это компилятор JavaScript, который преобразует код ECMAScript 2015+ в обратно совместимую версию JavaScript, которую можно запустить в старых и текущих браузерах.

ООП и методы этой парадигмы: ООП, или объектно-ориентированное программирование, — это парадигма программирования, основанная на концепции “объектов”, которые могут содержать данные и код: данные в виде полей (часто известных как атрибуты или свойства), и код, в виде процедур (часто известных как методы).

Функциональное программирование vs ООП: Функциональное программирование и объектно-ориентированное программирование — это две разные парадигмы.

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

WebSocket — это технология, которая позволяет устанавливать интерактивное соединение между пользовательским интерфейсом и сервером. Это означает, что обе стороны могут обмениваться данными в реальном времени без необходимости постоянно обновлять страницу или отправлять новые запросы на сервер. Это делает WebSocket идеальным для ситуаций, которые требуют быстрой и постоянной передачи данных, таких как онлайн-игры, чаты и т.д.

Другое

0.1 + 0.2 в JavaScript: Из-за особенностей двоичной арифметики в JavaScript, 0.1 + 0.2 не равно 0.3. Вместо этого, результат будет близким к 0.3, но не точно 0.3.

Операции с разными типами: В JavaScript, когда вы выполняете операции с разными типами данных, JavaScript пытается преобразовать один или оба операнда в тип, который подходит для операции. Например, true + true в JavaScript будет равно 2, потому что true преобразуется в 1 в числовом контексте.

obj[0] + obj[‘0’]: Если obj — это объект, и он имеет свойства, которые соответствуют 0 и '0', то obj[0] + obj['0'] вернет конкатенацию значений этих двух свойств.

requestAnimationFrame: requestAnimationFrame — это метод, который говорит браузеру, что вы хотите выполнить анимацию и просит его вызвать определенную функцию для обновления анимации перед следующей перерисовкой. В аргументе requestAnimationFrame указывается функция для обновления анимации.

Средний рейтинг
Еще нет оценок

Добавить комментарий

Related Post

Решение проблемы: Uncaught TypeError: ym is not a functionРешение проблемы: Uncaught TypeError: ym is not a function

Решение проблемы Uncaught TypeError: ym is not a function в Яндекс.Метрике В этом руководстве мы рассмотрим, как решить ошибку в консоли ‘ym is not a function’ в Яндекс.Метрике. Исправим ошибку