1. Введение в JavaScript
    JavaScript — это интерпретируемый язык, что означает, что его можно выполнять напрямую без необходимости процесса компиляции, как в компилируемых языках, таких как Python. Кроме того, это динамический язык, что означает, что он допускает динамическую типизацию. Это позволяет разработчикам изменять тип данных переменной «на лету», как показано в следующем блоке кода:
let x = 1;
x = 'hello';
x = true;
x = { a: 1, b: 2 };
x = [1, 2, 3, 4, 5];
x = function (a, b) {
  return a + b;
};

2. Объектно-ориентированные концепции в JavaScript

JavaScript также является объектно-ориентированным языком, но его реализация объектно-ориентированных концепций отличается от таких языков, как C++ и Java. JavaScript основан на прототипах и использует первоклассную объектную модель, допускающую функциональное программирование.

3. Примитивные типы данных в JavaScript

JavaScript имеет примитивные типы данных, которые представляют собой простые типы данных, содержащие одно значение. Одним из таких примитивных типов является symbol.
Стоит отметить, что JavaScript не различает целые числа и числа с плавающей запятой;
оба считаются number типами. Кроме того, undefined и null считаются значениями в JavaScript.
В случаях, когда переменной не присвоено значение или она неизвестна, JavaScript сохраняет это значение в области данных как undefined.
null обычно используется, когда объект должен присутствовать, но по какой-то причине его нет, или когда создание объекта не удается.

4. Особенности JavaScript

Одна интересная особенность JavaScript заключается в том, что typeof null возвращает object. Это связано с ошибкой, возникшей при первоначальном проектировании языка. Хотя null является значением, это не объект, что может привести к путанице. Объекты не являются примитивными типами в JavaScript.