JavaScript — это однопоточный, неблокирующий, асинхронный и объектно-ориентированный язык программирования. Пару лет назад JavaScript использовался для разработки клиентской части веб-сайта. Но в настоящее время, используя JavaScript, мы можем разрабатывать и серверную часть. Как и другие языки программирования, JavaScript также имеет типы данных. Итак, давайте погрузимся в мир типов данных JS, а также узнаем о некоторых несоответствиях.

Типы данных

В JS есть семь типов данных. Число, строка, символ, логическое значение, объект, нуль и неопределенный. Типы данных JavaScript можно разделить на два типа: примитивные и непримитивные типы данных. Давайте рассмотрим оба разных типа данных JavaScript.

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

Обычно число, строка, символ, логическое значение, null и undefined известны как примитивные типы данных. Это означает, что эти типы данных уже предопределены и не могут быть изменены. К этим типам данных можно обращаться только как к одному значению. Он не может содержать несколько значений в коде. Поясним концепцию на простом примере

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

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

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

Непримитивный тип данных

В JavaScript есть только один непримитивный тип данных, который называется object. Непримитивный тип данных является изменяемым. Когда мы создаем объект, он создает в памяти ссылку/адрес одной или нескольких пар ключ-значение. И если мы создадим другой объект и присвоим ему предыдущий объект в качестве значения, то он захватит адрес той переменной, которая назначена ему в качестве значения. Если мы увидим пример

Когда мы проверяем обе переменные, она возвращает true, потому что оба объекта содержат один и тот же адрес памяти.

Давайте посмотрим на другой пример

На картинке видно, что когда мы объявляем объекты по отдельности с одной и той же парой ключ-значение и проверяем их тройным равенством, он возвращает false. Но почему! Обе переменные имеют одинаковое значение. Что не так тогда?????

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

Массив и функция JavaScript также являются объектами.

Теперь давайте поговорим о примитивных и непримитивных типах данных JavaScript.

Число

Тип числа JavaScript может использоваться в различных формах, таких как целое число, экспоненциальное число с плавающей запятой и NaN. И значение переменной может быть присвоено с помощью функции Number() вместо .assigning традиционным способом. Мало того, что числовой тип данных может использоваться как объект! Посмотрите, как это круто

На изображении также видно, что NaN является числовым типом и может использоваться для проверки того, является ли значение нечисловым. И когда мы пытаемся разделить значение, которое больше 0, и пытаемся разделить на 0, оно возвращает бесконечность.

Строка

Строка может быть группой символов или одним символом, заключенным в одинарные двойные кавычки. Но в ES6 мы можем писать строки, используя литералы шаблонов. Преимущества его использования в том, что мы можем динамически изменять значение в строке. И, как и числовой тип, мы можем создать объект String, используя новый оператор и конструктор String.

См. пример

Символ

Символ — это новый тип данных в es6. Обычно символ используется для определения свойства объекта, которое в идеале должно оставаться закрытым. Другая причина использования типа данных символа — скрыть детали реализации объекта. Он работает как ключ пары ключ-значение объекта. Если мы можем добавить свойство, используя тип данных символа, мы можем сделать это с помощью функции Symbol(). Помните, что тип данных символа нельзя использовать в качестве конструктора. Давайте посмотрим на пример

логическое значение

Тип данных обычно используется для проверки логического условия. Имеет два значения true и false. Он возвращает значение на основе условия, если условие выполнено успешно, оно вернет true, иначе false. Мы также можем проверить тип true и false. Давайте посмотрим на пример

Нет

Null также является типом данных в JavaScript. Он в основном используется как значение для определения отсутствия значения или пустого значения. Но есть поворот, присваивающий null как значение переменной. Если мы проверим тип переменной, значение которой присваивается нулю, мы получим, что ее тип — объект. Но мы знаем, что null также является типом данных. Это ошибка в JavaScript. Давайте посмотрим пример.

Не определено

Тип данных undefined означает, что переменная объявлена, но ей не присвоено значение. Он также определяет отсутствие ценности. Но undefined может возникать в различных случаях, таких как

· Если мы ничего не возвращаем из функции на основе оператора функции.

· Если мы объявили переменную, но не присвоили ей значение.

· Вызовите функцию с недостаточным значением параметра, после чего она вернет неопределенное значение.

· Если мы присвоим значение свойства объекта переменной, которой нет в объекте, то оно вернет неопределенное значение.

Давайте посмотрим на пример

Без этих точек есть так много причин для возврата undefined.

Разница между null и undefined

Null и Defined оба используются для определения отсутствия значений или пустых значений. пусть различают их

  • Null используется как идеальное значение.
  • Undefined также можно использовать как значение, но это плохая практика.
  • Null сам по себе является значением с нулевым значением, которое не определяет никакого значения.
  • Undefined обычно возникает, когда его значение еще не присвоено
  • Переменная без значения просто означает, что она не определена
  • Переменная без значения не означает, что ее значение равно нулю
  • Тип данных переменной, которая не содержит значения «Не определено»
  • Но тип данных переменной содержит значение null. Который является объектом вместо нуля.

Непримитивный тип данных — объект

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

Массив

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

Из изображения мы поняли, что адрес в памяти массива или объекта остается неизменным, но он хранит свой адрес и теперь содержит новые значения, как вы можете видеть на картинке.

Функция

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

Подобно функциям и массивам, JavaScript также имеет еще два типа данных объекта: дату и регулярное выражение.

Некоторые несоответствия современного JavaScript

Как и другие языки программирования высокого уровня, JavaScript также имеет некоторые несоответствия. Посмотрим

  • Null — это тип данных в JavaScript, и если мы проверяем тип данных с помощью оператора typeof, в идеале он должен возвращать null вместо возврата объекта.
  • Функция также является типом данных объекта и, подобно типу данных null, если мы находим тип данных функции, она должна возвращать тип данных объекта, но возвращает функцию.
  • Мы не можем сказать, что JavaScript является полностью ООП-языком, потому что это не многопоточный язык программирования, а однопоточный язык программирования.
  • Незнание правильного использования нулевого и неопределенного типа данных

Заключение

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

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