Функции

  1. Высокий уровень
  2. Вывоз мусора
  3. Интерпретируемая и своевременная компиляция
  4. Мультипарадигма
  5. Объектно-ориентированный на основе прототипа
  6. Функции первого класса
  7. Динамический
  8. Однопоточный

ВЫСОКИЙ УРОВЕНЬ

  • Языки, которым не нужно беспокоиться об управлении ресурсами, такими как память.
  • Они позволяют программисту сосредоточиться на том, что нужно сделать, а не на том, как на самом деле работает компьютер.
  • Язык низкого уровня — пример — C-›, где память должна обрабатываться вручную.

Вывоз мусора

  • JavaScript использует форму автоматического управления памятью, известную как сборка мусора (GC).
  • V8 Engine использует алгоритм маркировки и очистки для освобождения места в куче памяти.
  • Сборщик мусора пытается освободить память, которая была выделена программой, но больше не используется — это также называется мусором.
  • JS Engine автоматически удаляет неиспользуемые переменные и прочее

Интерпретируемая и своевременная компиляция

  • Движок V8 использует как компилятор, так и интерпретатор и следует компиляции Just in Time (JIT) для повышения производительности.
  • Двигатель V8 изначально использует интерпретатор для интерпретации кода. При дальнейшем выполнении механизм V8 находит шаблоны, такие как часто выполняемые функции, часто используемые переменные, и компилирует их для повышения производительности.
  • Допустим, производительность падает или параметры, переданные в функцию, меняют свой тип, тогда V8 просто декомпилирует скомпилированный код и возвращается к интерпретатору.

Мультипарадигма

  • JS основан на нескольких парадигмах, таких как: -
    1. Процедурная
    2. OOPS
    3. Функциональное программирование

Объектно-ориентированный на основе прототипа

  • В Js все, кроме примитивов (число, строка и т. д.), является объектами.
  • У каждого объекта в JavaScript есть встроенное свойство, которое называется прототипом. Прототип сам по себе является объектом, поэтому прототип будет иметь свой собственный прототип, создавая так называемую цепочку прототипов.

Функции первого класса

  • Функция первого класса. Говорят, что язык программирования имеет функции первого класса, если функции в этом языке рассматриваются как другие переменные. Таким образом, функции могут быть назначены любой другой переменной, переданы в качестве аргумента или могут быть возвращены другой функцией.

Динамический

  • Когда вы объявляете переменную, вам не нужно указывать тип этой переменной. Механизм Javascript делает вывод, к какому типу относится эта переменная, на основе значения, присвоенного во время выполнения.
  • Переменные не имеют типа данных, и тип данных можно изменить во время выполнения.

Однопоточный

  • JS работает в одном потоке и обрабатывает несколько операций только в одном потоке.
  • Javascript — это однопоточный язык. Это означает, что у него есть один стек вызовов и одна куча памяти. Как и ожидалось, он выполняет код по порядку и должен завершить выполнение фрагмента кода, прежде чем перейти к следующему.