Перейти к основному содержимому

Типы данных

@serverSerrverlesskiy

Динамическая типизация#

JavaScript является слабо типизированным или динамическим языком. Это значит, что вам не нужно определять тип переменной 🔔 заранее.

Dinamics

Тип определится автоматически во время выполнения программы. Также это значит, что вы можете использовать одну переменную 🔔 для хранения 📦 данных различных типов 👇 :

Интерактивный редактор
Результат
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Видео#

typeof#

Для того чтобы понять тип данных содержащийся в переменной, используется оператор typeof. Оператор typeof возвращает тип аргумента. У него есть два синтаксиса: со скобками и без:

  • Синтаксис оператора: typeof x

  • Синтаксис функции: typeof(x)

Работают они одинаково, но первый синтаксис короче.

Результатом typeof является строка, содержащая тип.

Интерактивный редактор
Результат
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Типы данных#

Data types

Стандарт JavaScript определяет 9 типов данных. Познакомьтесь с каждым из них делая вывод в консоль и после я расскажу 🗣️ о каждом из них подробнее.

let one = { firstName: 'John', lastName: 'Smith' } // object
let two = () => {} // function
let three = 'bar' // string
let four = 42 // number
let five = 19241924124n // bigint
let six = true // boolean
let seven = null // null
let eight // undefined
let nine = Symbol() // symbol

Объекты#

cupboard

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

Функции#

Function

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

Примитивные значения#

Primitive

Все типы данных в JavaScript, кроме объектов, являются иммутабельными (значения не могут быть модифицированы, а только перезаписаны новым полным значением). Например, в отличии от языка👅 C, где строку можно посимвольно корректировать, в JavaScript строки пересоздаются🏗️ только полностью. Значения таких типов называются "примитивными значениями".

Текстовые строки#

text

В JavaScript для представления текстовых 📜 данных служит тип string.

Числа#

Numbers

Числовой тип данных number представляет как целочисленные значения, так и числа с плавающей точкой.

BigInt#

giant

В JavaScript тип number не может содержать числа больше, чем (253-1) (т. е. 9007199254740991), или меньше, чем -(253-1) для отрицательных чисел. Это техническое ограничение вызвано их внутренним представлением.

Для большинства случаев этого достаточно. Но иногда нам нужны действительно гигантские числа, например, в криптографии или при использовании метки времени ("timestamp") с микросекундами.

Тип bigInt был добавлен в JavaScript, чтобы дать возможность работать с целыми числами произвольной длины.

Булевый тип данных#

Булевый тип boolean представляет логическую сущность и имеет два 2️⃣ значения: true ✅ (истина)

true

и false ❎ (ложь).

False

Такой тип, как правило, используется для хранения 📦 значений да/нет: true ✅ значит «да, правильно», а false ❎ значит «нет, не правильно».

Null#

Null

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

Undefined#

Unndefined

Переменная 🔔 , которой не было присвоено значение, будет иметь значение undefined.

Отличия между null и undefined#

Spiderman

null является определенным значением отсутствия объекта, тогда как undefined обозначает неопределенность. Например вы можете это проверить в консоле браузера:

let TestVarconsole.log(TestVar) // undefinedconsole.log(typeof TestVar) // undefined

null - это значение присваивания. Он может быть присвоен переменной 🔔 как представление без значения:

let TestVar = nullconsole.log(TestVar) // nullconsole.log(typeof TestVar) // object

Из предыдущих примеров ясно, что undefined и null - это два 2️⃣ различных типа: undefined - это сам тип (неопределенный), а null - объект.

null === undefined // falsenull == undefined // truenull === null // true

Тип данных Символ (Symbol)#

Symbol

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

Проблемы?#

Problem

Пишите в Discord или телеграмм чат, а также подписывайтесь на наши новости

JavaScript Camp

Вопросы:#

Question

Для чего используется оператор typeof?

  1. Для определения типа данных
  2. Для вывода типа данных в консоль
  3. Для ввода новой переменной

Сколько типов данных определяет стандарт JavaScript?

  1. 7
  2. 9
  3. 5

В каком типе данных содержится набор свойств?

  1. function
  2. string
  3. object

Можно ли в JavaScript корректировать строку посимвольно?

  1. Да
  2. Возможно в особых случаях
  3. Нет, строки пересоздаются только полностью

Какой тип данных даёт возможность работать с целыми числами произвольной длины?

  1. number
  2. string
  3. bigInt

Какое из значений не имеет булевый тип boolean?

  1. false
  2. null
  3. true

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

  1. undefined
  2. symbol
  3. null

Каков тип данных переменной whatTypeAmI после выполнения этого оператора? \n let whatTypeAmI = 5

  1. integer
  2. number
  3. string

Какой тип данных, возможно, является наиболее часто используемым типом данных в JavaScript?

  1. integer
  2. number
  3. string

Как называется примитивный тип данных, который означает, что никакое другое значение не было присвоено?

  1. undefined
  2. symbol
  3. null

Как называется примитивный тип данных, который в основном ничего не означает (не ноль, не пустая строка, не неопределенный, не ложный и т.д.)?

  1. undefined
  2. boolean
  3. null

Сколько возможных значений для нулевого типа данных?

  1. 1 возможное значение (null)
  2. 2 возможных значения (null, undefined)

Каково значение myMessage после этой строки? \n let myMessage

  1. undefined
  2. SyntaxError
  3. null

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

Sumerian school

Ссылки:#

  1. MDN web docs
  2. Код для подростков: прекрасное руководство по программированию для начинающих, том 1: Javascript - Jeremy Moritz
  3. JavaScript.ru

Contributors ✨#

Thanks goes to these wonderful people (emoji key):


Dmitriy Vasilev

📖

Resoner2005

🐛 🎨 🖋

Become a Patron!