Преобразование типов в Javascript за 3 минуты

Я подумал, что было бы здорово поделиться с вами тем, как Javascript преобразует свои примитивные типы данных.
Это высокоуровневый обзор преобразования типов в Javascript. После прочтения этого блога вы будете лучше понимать, как javascript преобразует свои типы данных.

Преобразование типов

  • Преобразование одного типа данных в другой (число в строку или строка в число).

В Javascript существует два типа преобразования типов данных: неявное преобразование и явное преобразование. Давайте рассмотрим оба типа преобразования.

Неявное преобразование

  • Javascript автоматически преобразует типы данных без нашего указания.
  • Выполнение арифметических операций над двумя различными типами данных заставляет Javascript преобразовывать типы данных, чтобы вернуть правильное значение.
  • При использовании оператора + со строкой и другим типом данных, Javascript преобразует оба типа данных в строки и вернет значение строки.
console.log(5 + "5"); => "55"
console.log(true + "false"); => "truefalse"
Вход в полноэкранный режим Выход из полноэкранного режима
  • При использовании операторов | - | * | / | % | Javascript попытается преобразовать оба типа данных в числа.
console.log(1 * "2"); => 2
console.log(5 * "5"); => 25
Вход в полноэкранный режим Выйти из полноэкранного режима
  • Если тип данных не может быть преобразован в число, Javascript вернет NaN (Not A Number) в качестве возвращаемого значения.
console.log(1 * "true"); => NaN
console.log(0 / false); => NaN
console.log(true % "false"); => NaN
console.log(1 * undefined); => NaN
Вход в полноэкранный режим Выход из полноэкранного режима
  • Когда булево значение true преобразуется в число, оно имеет значение 1
console.log(0 + true); => 1
Вход в полноэкранный режим Выход из полноэкранного режима
  • Когда булево значение false преобразуется в число, оно имеет значение 0
console.log(1 * false); => 0
console.log("14", true + false); => 1
Войти в полноэкранный режим Выход из полноэкранного режима
console.log(1 * null); => 0
Войти в полноэкранный режим Выход из полноэкранного режима
  • Любое число, деленное на 0, равно бесконечности
console.log(12 / false); => Infinity
console.log(true / false); => Infinity
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Использование операторов равенства заставит Javascript преобразовывать типы данных
  • Оператор == equals to сравнивает оба значения и преобразует оба типа данных в числа
  • Оператор === strictly equals to сравнивает оба значения, но не преобразует типы данных
console.log(7 == "7"); => true
console.log(7 == "8"); => false
console.log(7 === 7); => true
console.log(7 === "7"); => false
console.log(7 === "8"); => false
console.log("true" == true); => false
console.log("true" === true); => false
console.log(true == 1); => true
console.log(true === 1); => false
console.log(null == undefined); => true
console.log(null === undefined); =>false
Вход в полноэкранный режим Выход из полноэкранного режима

Явное преобразование

  • Преобразование типов данных вручную
  • Метод Number() преобразует строковые и булевы значения в числа. Если строка содержит какой-либо текст, javascript вернет NaN.
console.log(Number("")); => 0
console.log(Number("Halo 3")); => NaN
console.log(Number("5")); => 5
console.log(Number(true)); => 1
console.log(Number(false)); => 0
Вход в полноэкранный режим Выйти из полноэкранного режима
  • Метод parseInt() преобразует строковые значения в целые числа. parseInt() — это строковый метод. Он возвращает ошибку при использовании с другими типами данных. Если строка содержит текст и числа, мы можем извлечь числа из строки только в том случае, если число находится в начале строки. Если число не находится в начале строки, мы получим возвращаемое значение NaN NotaNumber
console.log(parseInt("12")); => 12
console.log(parseInt("12.5")); => 12
console.log(parseInt(true)); => NaN
console.log(parseInt("true")); => NaN
console.log(parseInt("true12")); => NaN
console.log(parseInt("12true12")); => 12
console.log(parseInt(null)); => NaN
Вход в полноэкранный режим Выйти из полноэкранного режима
  • Метод parseFloat() похож на метод parseInt() за исключением того, что он используется для преобразования строк, содержащих десятичные числа, в плавающие.
console.log(parseFloat("12.5")); => 12.5
console.log(parseFloat("2.5Hello")); => 2.5
console.log(parseFloat("2.5 Hello")); => 2.5
console.log(parseFloat("Hello2.5")); => NaN
console.log(parseFloat("Hello 2.5")); => NaN
Вход в полноэкранный режим Выход из полноэкранного режима
  • Метод String() и метод .toString() преобразуют примитивные типы данных в строки
console.log(String(12)); => "12"
console.log(String(true)); => "true"
console.log(String(3.41)); => "3.14"
console.log((88).toString()); => "88"
console.log(true.toString()); => "true"
console.log((22.1).toString()); => "22.1"
console.log((12345678).toString()); => "12345678"
Вход в полноэкранный режим Выход из полноэкранного режима
  • Метод Boolean() преобразует примитивные типы данных в булевы значения
  • Положительные & Отрицательные числа имеют истинное значение
  • 0 и пустые строки имеют ложное значение
  • Строки с текстом или числами имеют истинное значение
  • null & undefined имеет ложное значение
console.log(Boolean(3)); => true
console.log(Boolean(0)); => false
console.log(Boolean(-1)); => true
console.log(Boolean(-10)); => true
console.log(Boolean("")); => false
console.log(Boolean("ghjk")); => true
console.log(Boolean("56789")); => true
console.log(Boolean(null)); => false
console.log(Boolean(undefined)); => false
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий