Типы данных в js: Типы данных

Типы данных | JavaScript Camp

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

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

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

function learnJavaScript() { let foo = 42 // сейчас foo типа number foo = ‘bar’ // а теперь foo типа string return typeof foo }

Loading…

Видео​

typeof​

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

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

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

function learnJavaScript() { let num = 9 return typeof num }

Loading…

Типы данных​

Стандарт 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

Объекты​

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

Функции​

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

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

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

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

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

Числа​

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

BigInt​

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

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

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

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

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

и false ❎ (ложь).

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

Null​

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

Undefined​

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

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

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

let TestVar
console.log(TestVar) // undefined
console.log(typeof TestVar) // undefined

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

let TestVar = null
console.log(TestVar) // null
console.log(typeof TestVar) // object

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

null === undefined // false
null == undefined // true
null === null // true

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

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

Проблемы?​

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

Вопросы:​

Для чего используется оператор 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

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

Ссылки:​

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

Contributors ✨​

Thanks goes to these wonderful people (emoji key):


Dmitriy Vasilev
📖

Resoner2005
🐛 🎨 🖋

Основные типы данных в JS · GitHub

Основные типы данных в JS

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below.

To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Show hidden characters

/*
Основные типы данных в JS
*/
var sampleNumber,
anotherNumber,
sampleString,
anotherString,
itIsTrue,
itIsNotTrue,
strangeVariable,
sampleObject;
// Простые типы данных
// number — Числа
sampleNumber = 2;
anotherNumber = 3.
14;
// string – строки
sampleString = «JS is my favorite language»;
anotherString = ‘I don\’t understand’;
// boolean — логические значения
itIsTrue = true;
itIsNotTrue = false;
strangeVariable = undefined;
// Составной тип данных — объект
sampleObject = {
name: «Olaf»,
age: 18,
getName: function() {
return this. name;
}
}

типов данных Javascript | hackinbits

Введение

Когда вы заказываете еду в Интернете, вы выбираете еду по ее «названию» в онлайн-меню, скажем, вы выбрали «Чизбургер», который представляет собой строку типа, используемую для представления текста. «Чизбургер» будет иметь связанную стоимость, скажем, «5 долларов», что является числовым значением. По мере того, как вы переходите к оформлению заказа, появляется опция «дополнительный сыр», на которую вы можете ответить «да» или «нет» или, говоря техническим языком, «верно» или «ложно».

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

  • Cheese Burger: Значение может отображаться на экране с помощью строки.
  • $5: может быть представлено в виде числа, поэтому, когда вы добавляете дополнительные элементы, для них можно выполнять вычисления.
  • да или «нет»: Решение может быть представлено с использованием логического значения (истина или ложь).

Типы данных в Javascript

Типы данных в JavaScript можно разделить на Примитивные и Объектные . Всего в последнем стандарте ECMAScript определено 6 примитивных типов:

  1. boolean
  2. null
  3. undefined
  4. число
  5. строка
  6. символ (новое в ECMAScript 2015)
  7. Тип объекта .

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

В Javascript все значения, кроме объектов, определяются как неизменяемые значения (значения, которые нельзя изменить или модифицировать).

Boolean

Boolean представляет логический объект, который может иметь только два значения, true или false. Это полезно для управления ходом программы и принятия решений с использованием условных операторов.

 переменная логического значения = истина;
если (логическое) {
//затем какое-то действие;
} 

Null

null означает отсутствие какого-либо значения, т.е. пустое или несуществующее значение. null явно ничего не означает. Содержимое переменной можно стереть, не удаляя ее, присвоив ей значение null.

 переменная число = 45;
число = ноль; //num теперь не содержит значения 

Undefined

Undefined означает, что переменная была объявлена, но ей еще не присвоено какое-либо значение.

 переменная эксп;
//Вывод на печать
document.getElementById("выход").innerHTML = exp; 

Ссылка на пример

Число

В соответствии со стандартом ECMAScript в Javascript существует только один числовой тип. Он служит как для целых чисел, так и для чисел с плавающей запятой. Числовой тип имеет три специальных числовых значения: +бесконечность, -бесконечность и NaN (не число).

Бесконечность и -бесконечность — это специальные значения, которые представляют математическую бесконечность и больше или меньше любого числа соответственно.

 переменная exp = 1 / 0;
//Вывод на печать
document.getElementById("выход").innerHTML = exp; 

Ссылка на пример

NaN представляет собой вычислительную ошибку. Это результат неудачных или неправильных математических операций.

 var exp = "hackinbits" / 45;
//Вывод на печать
document.getElementById("выход").innerHTML = exp; 

Ссылка на пример

Любые дальнейшие операции над NaN дадут NaN

 var exp1 = "hackinbits" / 2;
переменная exp2 = exp1 + 3;
//Вывод на печать
document.getElementById("output").innerHTML = exp2; 

Ссылка на пример

Строка

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

 var exp = "Добро пожаловать на hackinbits.com";
//Вывод на печать
document.getElementById("выход").innerHTML = exp; 

Ссылка на пример

Символ

Символы являются новыми для Javascript. Символы — это уникальные и неизменяемые примитивные значения. Они используются для создания уникальных идентификаторов объектов (подробнее об этом в другой статье, так как это можно объяснить лучше после обсуждения нескольких тем).

Тип объекта

Тип объекта относится к составному значению, которое можно рассматривать как набор свойств. Свойства представляют собой пары ключ/значение. Ключи представляют собой строки (или символы), а значения могут быть любого типа, включая другие объекты.

 вар объект = {
  название: 'Чиз Бургер',
  стоимость: 5,
  extra_cheese: правда
}; 

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

», а не через пробел. Также можно использовать пробел, но тогда ключ следует заключать в кавычки (двойные кавычки, например, «ключ»), например:

 вар объект = {
  название: 'Чиз Бургер',
  стоимость: 5,
  "дополнительный сыр": правда
}; 

Использование оператора typeof для определения типов

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

  1. Как оператор: typeof v.
  2. Как функция: typeof (v).
 var exp = typeof "Добро пожаловать на hackinbits.com";
// Вывод на печать.
document.getElementById("выход").innerHTML = exp; 

Ссылка на пример

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

Переменные в JavaScript не связаны напрямую с каким-либо конкретным типом данных. Только значения имеют типов в javascript. Переменные — это простые контейнеры для значений. Вы можете сказать, что javascript имеет типизированные значения, а не типизированные переменные.

 переменная exp = 45; // exp — это число
var exp = 'hackinbits.com'; // exp теперь является строкой
вар ехр = истина; // exp теперь является логическим значением 

Summary

Типы данных JavaScript

Теперь, когда вы знакомы с основами HTML и CSS, мы приступим к изучению нашего первого языка программирования: JavaScript.

В JavaScript информация разделена на разные типы данных. Данные — это просто часть информации, и ее тип — это то, к чему эта информация относится. Итак, типов данных (также известные как «типы») — это разные имена, которые мы даем для различения и классификации данных. Каждый тип данных имеет разные функциональность , что означает, что он делает разные вещи.

Например, некоторые данные представляют собой числа, например ваш возраст. В то время как другие данные представляют собой текст, например, название вашей любимой книги или фильма. В JavaScript числовые данные и текстовые данные называются «число» и «строка» соответственно. Мы узнаем больше о числах и строках всего за несколько абзацев!

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

В JavaScript типы данных разделены на две категории: объекты и примитивы .

Примитивы


Примитивы — это простейшие элементы JavaScript. В JavaScript существует семь различных типов примитивов, но в ходе этого курса мы будем регулярно видеть и использовать только пять из них:

  • Число: Число — это то, на что оно похоже. Это может быть 221 , -4 или 1,97 . Как вы могли догадаться, мы будем использовать их часто.

  • Строка: Строка представляет собой набор символов, заключенных в кавычки. "привет" это строка. Так же и "Всем доброе утро!!!" И, чтобы немного усложнить ситуацию, "21" — это строка, а не число. Потому что оно заключено в кавычки. Любой набор символов, заключенный в кавычки, будь то буквы, цифры, девятнадцать восклицательных знаков подряд или их комбинация, является строкой. Мы будем использовать строки все время.

  • Логическое значение: Логическое значение может принимать одно из двух значений: true или false . Вот и все. Мы тоже будем их часто использовать.

  • Null: Null просто ничего не значит. Иногда мы хотим присвоить нулевое значение вещи, потому что мы еще не знаем, какое значение она должна иметь.

  • Undefined: Это забавно… или, скорее, в большинстве случаев это не так забавно, когда оно появляется в нашем коде. Это просто означает, что что-то еще не определено. Причина, по которой это часто не так весело, заключается в том, что мы увидим, что что-то равно 9.0178 undefined в нашем коде, когда мы этого не хотим. Это означает, что нам нужно исправить ошибку. Не волнуйтесь, мы получим много практики с undefined , хотим мы того или нет!

  • Символ: Более новый примитив, который был представлен в 2015 году. Мы не будем использовать его во время программы — и, поскольку мы не хотим перегружать вас слишком большим количеством информации, мы не будем вдаваться в подробности о это здесь. Если вам действительно нужно узнать больше прямо сейчас, обратитесь к документации Mozilla по символам. 953. Вы можете узнать больше о BigInt в документации Mozilla по BigInt.

Объекты


В курсе Intermediate JavaScript мы посвящаем целый раздел изучению объектов JavaScript. Однако объекты JavaScript настолько важны, что мы начнем изучать их концептуально. Позже в этом разделе курса мы узнаем о конкретных инструментах, работающих от объектов. Итак, что такое объект?

Давайте сначала рассмотрим, что такое объект в английском языке: объект — это то, что можно увидеть или потрогать. Мы могли бы описать объект как вещь, часто неодушевленную. Мы могли бы также описать объект подобно тому, как мы описываем существительное: человека, место или вещь. По этим определениям компьютер является объектом, поэтому давайте возьмем компьютер в качестве примера.

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

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

Вообще говоря, это определение объекта верно для всех языков программирования. Как мы узнаем позже в этом разделе, наши веб-браузеры используют объекты для представления таких вещей, как окно браузера и веб-страницы, которые мы создаем с помощью HTML и CSS.

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

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

Другие аналогии с объектами

Думайте о пакете с продуктами как об объекте. Он что-то делает (функциональность): в нем хранятся продукты и другие предметы, чтобы люди могли легко переносить товары из магазина домой. В нем также есть что-то (данные): возможно, 3 апельсина, 2 упаковки тофу, 1 фунт зеленой фасоли и блок сыра. Все отдельные фрагменты данных определяют пакет с продуктами (наш объект), а также теперь связаны друг с другом, удерживаясь вместе в этом пакете с продуктами. Это пример того, как объект является контейнером, который содержит данные, данные о том, чем является объект и что он может делать.

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

Давайте рассмотрим другой объект-пример: кошка. Мы можем описать, что такое кошка, перечислив различные ее аспекты. У кошки:

  • глаза и другие органы
  • цветов в пальто
  • имя
  • личность
  • возраст
  • любимые занятия
  • возможно семья и друзья?
  • как насчет врагов или добычи?

А что умеет кошка? Кошка может:

  • мурлыкать
  • поцарапать мебель
  • есть
  • мяу
  • охота
  • прыжков и уж точно больше!

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

Пользовательские и встроенные объекты

JavaScript (как и большинство языков программирования) предоставляет встроенные объекты, а также возможность создавать собственные объекты. Какая разница? Функциональность, которая является встроенной , означает, что категория объекта (имя или тип) и функциональность (что он может делать) предопределены в языке JavaScript. Чтобы использовать встроенные объекты, нам просто нужно изучить их синтаксис, а затем мы сможем применять их в нашем коде. Вскоре мы узнаем больше о встроенных объектах JavaScript.

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

Выводы


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

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *