Явное преобразование типов данных в Javascript
Главная или честный способ заработка в сети Зачем мне это? Всё начинается с идеи

Явное преобразование типов данных в Javascript



Как было написано в одной из предыдущих статей, корректная работа с данными разных типов невозможна!, поэтому, перед проведением действий над операндами необходимо преобразовать их к одинаковому типу. Интерпретатор JavaScript самостоятельно может это сделать неявным способом, но, в этом случае, результат не всегда будет удовлетворять нашим ожиданиям. Возьмём пример сложения двух переменных и зададим им значения "по умолчанию":

var a, b, c; /*Объявляем переменные a, b, c*/
a=prompt ("Введите переменную a", 10); /*запускаем функцию prompt для ввода данных в переменную a*/
b=prompt ("Введите переменную b", 3); /*запускаем функцию prompt для ввода данных в переменную b*/
c=a+b; /*Складываем переменные a и b. Результат этой операции записываем в переменную c*/
alert (c); /*Выводим значение переменной c на экран*/

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

Строковое преобразование

Как видно из заголовка, стороковым преобразованием является преобразование любых типов данных в строки. Делается это при помощи метода String(), в скобках указывается переменная (значение), над которой необходимо произвести операцию. Рассмотрим пример:

var a, b, c, d, e; /*Объявляем переменные a, b, c, d, e*/
a=1; /*Задаём числовое значение переменной a*/
b=String(a); /*Приводим переменную a к строковому типу и записываем значение в переменную b*/
c=2; /*Задаём числовое значение переменной c*/
d=(a+c); /*Складываем переменные a и c. Результат записываем в переменную d*/
e=(b+c); /*Складываем переменные b и c. Результат записываем в переменную e*/
alert("число 1 + число 2 = "+d); /*Выводим сообщение число 1+ число 2 = и значение переменной d на экран*/
alert("строка 1 + строка 2 = "+e); /*Выводим сообщение строка 1 + строка 2= и значение переменной e на экран*/

Запускаем. На экране по порядку выскакивают 2 окна, первое: "число 1 + число 2 = 3". В это случае переменным a и b задано числовое значение. В результате сложения двух чисел, получается число. Во втором окне сообщение: "строка 1 + строка 2 = 12". Здесь одну из складываемых переменных мы привели к строковому типу. В результате сложения строки с числом, JavaScript неявным способом преобразовал все элементы данный операции в строки.

Числовое преобразование



Числовым преобразованием является преобразование любых типов данных в числа. Делается это при помощи метода Number(), в скобках указывается переменная (значение), над которой необходимо произвести операцию. Происходит преобразование по следующим правилам:

Для строк:

Для логических значений:

Для специальных значений:

Аналогом метода Number(), является поставленный перед преобразуемым значением +. Number("5") и +"5" - одно и то же.

Логическое преобразование

Все типы данных преобразуются в логические значения при помощи метода Boolen(), в скобках указывается переменная (значение), подвергаемая преобразованию. Все значения, являющиеся "пустыми" представляются как false их немного:

  1. Пустая строка;
  2. 0;
  3. null;
  4. undefined;
  5. NaN;

Всё остальное представляется как true.

Важно: Любая непустая строка преобразуется в true, даже если содержимое её является пробелом, нулём специальным значением или даже NaN!

Преобразование простых типов в объекты

Простые типы данных преобразуются в объекты при помощи методов String(), Number() и Boolean():

var a, b, c; /*Объявляем переменные a, b, c*/
a=new String("1"); /*Создаём из переменной a объект строкового типа a*/
b=new Number(1); /*Создаём из переменной b числовой объект b*/
c=new Bolean(true); /*Создаём из переменной c объект логического типа с*/

Преобразование объектов в простые типы данных



В простые типы объекты преобразуются при помощи методов toString() и valueOf. При помощи toString() возвращается представление объекта в виде строки "[object Object]":

({x:1}).toString()

Метод valueOf возвращает простое значение объекта, если таковое имеется:

({x:2}).valueOf()

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

24.05.2018


<<Предыдущая | В раздел | Следующая>>