Основы приведения типов онлайн урок.


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

Рассмотрим приведение типов Number, Boolean, String. Приведение этих типов возможно при помощи следующих функций:

  • Number(value) - возвращает значение value, приведенное к Number
  • String(value) - возвращает значение value, приведенное к String
  • Boolean(value)- возвращает значение value, приведенное к Boolean

Приведение к Number. При конвертации логического значения в числовой, true сопоставляется 1, а false сопоставляется 0. При конвертации строкового типа в числовой строке, состоящей только из символов цифр (а также символа точки в случае дробной части) сопоставляется соответствующее числовое значение. Если строка содержит любой другой символ, то результатом конвертации будет NaN:

var b1 = true;
var b2 = false;
Number(b1); // 1
Number(b2); // 0

var s1 = "Jack";
var s2 = "2";
var s3 = "2+2";
var s4 = "2.5";
var s5 = " 10";
Number(s1); // NaN
Number(s2); // 2
Number(s3); // NaN
Number(s4); // 2.5
Number(s5); // NaN


Приведение к String. При приведении к строковому типу данных, логические и числовые значения преобразуются в строку, которая содержит соответствующие значения:

var b1 = true;
String(b1); // "true"

var n1 = 123;
var n2 = -15;
var n3 = 0.56;
var n4 = 2.5;
String(n1); // '123'
String(n2); //'-15'
String(n3); // '0.56'
String(n4); // '2.5'


Приведение к Boolean. При конвертации строк в логический тип, будет получено true, если строка содержит хотя бы один символ. В противном случае будет получено значение false. При приведении числового типа к логическому, будет получено true, если числовое значение не равно нулю. Например,

var s1 = "";
var s2 = "0";
var s3 = "25";
var s4 = " ";
var s5 = "2+2";
Boolean(s1); // false
Boolean(s2); // true
Boolean(s3); // true
Boolean(s4); // true
Boolean(s5); // true

var n1 = -1; // true
var n2 = 0; // false
var n3 = 0.2; // true
var n4 = 2; // true


Рассмотрим также приведение специальных значений NaN, undefined, Infinity, null. При приведении этих значений к строкам будут получены строки, которые равны этим значениям - "NaN", "undefined", "Infinity", "null".

String(NaN); // "NaN"
String(undefined); // "undefined"
String(Infinity); // "Infinity"
String(null); // "null"



При приведении к логическому типу, true будет получено только из значения Infinity.

Boolean(NaN); // false
Boolean(undefined); // false
Boolean(Infinity); // true
Boolean(null); // false


Приведение к числовому типу показано на следующем примере:

Number(NaN); // NaN
Number(undefined); // NaN
Number(Infinity); // Infinity
Number(null); // 0


Также, JS будет пытаться привести типы разных данных, которые задействованы в одном выражении, например, при попытке сложить true и "Hello".

var a = 3 + false; // 3
var b = 'test' + null; // 'testnull'
var c = '10' + 5; // '15'
var d = '10' - 5; // 5
var e = NaN + 5; // NaN


В данном случае, необходимо отметить, что операция + является общей для арифметических и строковых операций.

Проверьте свои знания
Преобразовать в целый тип данных строковые значения "00code", "12.43a", "0x1234", "hello 1", "3432". Полученные значения проверить при помощи функции alert (var). Проанализировать полученные результаты.