«Все в Javascript - это объект»

У всех языков программирования есть типы. Это строительные блоки, которые позволяют нам писать на этом языке. Понимание типов важно, если наша цель - овладеть языком.

В Javascript всего 7 типов:

Но ждать! Обратите внимание, что null - это объект! Что ж, это ошибка языка, потому что даже Брендан Эйх - парень, написавший язык, признает это. Никакая программа не идеальна. Поскольку null должен быть null - фактический примитивный тип в Javascript, но, как я уже сказал, ни одна программа не свободна от ошибок.

Символы () вошли в ES6. Значение Символ полезно для идентификации объектов. Обычно они используются для свойств объекта, чтобы свойство объекта было уникальным.

Примечание:

Функции

Давайте посмотрим на пример, чтобы продемонстрировать.

Массивы

Массивы и функции в Javascript - это объекты.

Примитивные и непримитивные типы

В Javascript все типы, кроме типа объекта, являются примитивами. Примитивные типы - это данные, представляющие только одно значение.

Например:
var a = 5. В памяти здесь значение 5, и здесь нет никакой двусмысленности.

Переменная примитивного типа непосредственно содержит значение этого типа. null - это просто null в памяти. То же самое и Symbol (), правда / ложь. Их нельзя разбить на более мелкие части.

С другой стороны, непримитивный тип не содержит напрямую фактического значения.

obj1 не содержит здесь значения напрямую. Вместо этого у него есть ссылка - похожая на указатель на место в памяти, где хранится этот объект.

Встроенные объекты

Стандартные встроенные объекты поставляются с языком.



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

Это немного усложняется.

Но «в Javascript все является объектом». Многие вещи, с которыми мы взаимодействуем напрямую, такие как строки, числа и логические значения, которые являются примитивами, имеют объектные оболочки, такие как string (), Boolean () или Number ().

Например

true - это примитивный тип, но почему он действует как объект, используя точечную нотацию?

Опять же, это иногда бывает странно с Javascript. Потому что он незаметно создает объект-оболочку вокруг true, когда мы пытаемся получить доступ к свойству примитива.

За кулисами это почти то же самое, что заключить это в логическое значение, чтобы оно получило доступ к toString () и, наконец, вернуло «true».

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

Так что не все в Javascript является объектом. Но есть много встроенных объектов, которые мы можем использовать, так что если мы выполним typeof Math,

получаем объект. И делаем typeof бесконечность,

получаем номер.