Рубрики
Без рубрики

Типы JavaScript

Иногда вы можете прочитать, что JS нетипизирован, но это неверно. Это правда, что вы можете присваивать переменной всевозможные типы, но в JavaScript есть типы. В частности, он предоставляет примитивные типы и типы объектов.

  • Примитивные типы
  • Числа
  • Струнные
    • Литералы шаблона
  • Логический
  • нулевой
  • не определено
  • Типы объектов
  • Как найти тип переменной

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

Примитивными типами являются

  • Номер
  • Строка
  • Логический
  • Символ

И два особых типа:

  • нулевой
  • не определено

Давайте рассмотрим их подробно в следующих разделах.

Числа

Внутренне в JavaScript есть только один тип чисел: каждое число является числом с плавающей точкой.

Числовой литерал – это число, представленное в исходном коде, и в зависимости от того, как оно написано, оно может быть целочисленным литералом или литералом с плавающей запятой.

Целые числа:

10
5354576767321
0xCC //hex

Поплавки:

3.14
.1234
5.2e4 //5.2 * 10^4

Струнные

Строковый тип – это последовательность символов. Он определен в исходном коде как строковый литерал, заключенный в кавычки или двойные кавычки

'A string'
"Another string"

Строки могут занимать несколько строк с помощью обратной косой черты

"A \
string"

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

'I\'m a developer'

Строки могут быть соединены с помощью оператора +:

"A " + "string"

Литералы шаблона

Введенные в ES2015 литералы шаблонов представляют собой строковые литералы, которые позволяют более эффективно определять строки.

const a_string = `something`

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

`a string with ${something}`
`a string with ${something+somethingElse}`
`a string with ${obj.something()}`

Вы можете легко создавать многострочные строки:

`a string
with
${something}`

Логический

JavaScript определяет два зарезервированных слова для логических значений: true и false. Множество операций сравнения == === < > (и так далее) возвращайте либо одно, либо другое.

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

Они не просто принимают истину или ложь, но также принимают истину и ложные

Ложные значения, значения интерпретируются как ложные , являются

0
-0
NaN
undefined
null
'' //empty string

Все остальное считается значением истинности .

нулевой

null – это специальное значение, указывающее на отсутствие значения.

Это распространенное понятие и в других языках, может быть известно как ноль или Нет в Python, например.

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

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

Обычно он возвращается функциями без возвращаемого значения. Когда функция принимает параметр, но он не задан вызывающим, он не определен.

Чтобы определить, является ли значение неопределенным , вы используете конструкцию:

typeof variable === 'undefined'

Типы объектов

Все, что не является примитивным типом, является типом объекта.

Типы объектов имеют свойства, а также методы, которые могут воздействовать на эти свойства.

Как найти тип переменной

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

typeof 1 === 'number'
typeof '1' === 'string'
typeof {name: 'Flavio'} === 'object'
typeof [1, 2, 3] === 'object'
typeof true === 'boolean'
typeof undefined === 'undefined'
typeof (() => {}) === 'function'

Почему тип возвращаемой “функции”? В JavaScript нет типа функция . Это правда, и это особенность типа , которая удобно возвращает это значение.

Оригинал: “https://flaviocopes.com/javascript-types/”