Типы JavaScript

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

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

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

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

  • ноль
  • неопределенный

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

Числа

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

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

Целые числа:

10
5354576767321
0xCC //hex

Поплавки:

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

Струны

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

'A string'
"Another string"

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

"A \
string"

Строка может содержать escape-последовательности, которые можно интерпретировать при печати строки, например \ 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 определяет два зарезервированных слова для логических значений: истина и ложь. Множество операций сравнения== === < >(и так далее) верните либо одно, либо другое.

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

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

Ложные значения, ценностиинтерпретируется как ложь, находятся

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

Все остальное считаетсяправдивая ценность.

ноль

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

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

неопределенный

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

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

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

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'

Почемуtypeofвернул «функцию»? JavaScript не имеетfunctionтип. Это правда, и это причудаtypeofкоторый удобно возвращает это значение.

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: