русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-09; просмотров: 474; Нарушение авторских прав


Что будет, если к числу прибавить строку?

var m_Str = "5";

var m_Number = 3;

var m_Str2 = m_Number + m_Str; // Переменная содержит строку "35"

var m_Str3 = m_Str + m_Number; // Переменная содержит строку "53"

В этом случае интерпретатор столкнется с несовместимостью типов данных и попытается преобразовать переменные к одному типу данных, а затем выполнить операцию. В нашем случае переменная m__Number, имеющая тип number (число), будет преобразована к типу string (строка), а затем будет произведена операция конкатенации строк.

А что будет, если из числа вычесть строку, число умножить на строку и. число разделить на строку?

 

var m_Number = 15;

var m_Str = "5";

var m_Str2 = m_Number - m_Str; // Переменная содержит число 10

var m_Str3 = m_Number * m_Str; // Переменная содержит число 75

var m_Str4 = m_Number / m_Str; // Переменная содержит число 3

Итак, интерпретатор попытается преобразовать строку в число, а затем вычислить выражение. Причем не важно, в какой последовательности будут указаны число и строка:

var m_Str5 = m_Str * m_Number; // Переменная все равно содержит число 75

Но что будет, если в строке будут одни буквы?

var m_Number = 15;

var m_Str = "Строка";

var m_Str2 = m_Number - m_Str; // Переменная содержит значение NaN

В этом случае интерпретатор не сможет преобразовать строку в число и присвоит переменной значение NaN (Not a Number, нет числа).

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

Для преобразования типов данных можно использовать следующие встроенные функции JavaScript:



parseInt(<Строка>,[<Основание>]) преобразует строку в целое число. Строка считается заданной в системе счисления, указанной вторым необязательным параметром. Если основание не указано, то по умолчанию используется десятичная система. Если строка не может быть преобразована в число, возвращается значение NaN.

var m_Number = 15;

var m_Str = "5";

var m_Str5 = "FF";

var m_Str2 = m_Number - parseInt(m_Str); // Переменная содержит число 10

var m_Str3 = m_Number - parseInt(m_Str5, 16);

// Переменная содержит число -240

var m_Str4 = m_Number + parseInt(m_Str); // Переменная содержит число 20

 

parseFloat(<Строка>) преобразует строку в число с плавающей точкой:

var m_Str = "5.2";

var m_Str2 = parseFloat(m_Str); // Переменная содержит число 5.2

eval(<Строка>) вычисляет выражение в строке, как будто это было обычное выражение JavaScript:

var m_Str = "3 + 5";

var m_Str2 = eval(m_Str); // Переменная содержит число 8

Приведем пример использования преобразования типов данных. Просуммируем два числа, введенных пользователем в поля двух диалоговых окон (листинг3.9).

 

Листинг 3.9. Вычисление суммы двух чисел

<HTML>

<HEAD>

<TITLE>Преобразование типов данных</TITLE>

</HEAD>

<BODY>

<SCRIPT language="JavaScript">

<!--

var m_Str1, m_Str2, m_Sum1, m_Sum2;

m_Str1=window.prompt("Вычисление суммы двух чисел\nВведите число 1", "");

if (m_Str1==null) {

document.write("Вы нажали Отмена");

}

else {

m_Str2=window.prompt("Вычисление суммы двух чисел\nВведите число 2", "");

if (m_Str2==null) {

document.write("Вы нажали Отмена");

}

else {

m_Sum1=m_Str1 + m_Str2;

document.write("До преобразования типов:<BR>Значение суммы чисел ");

document.write(m_Str1 + " и " + m_Str2 + " равно ");

document.write(m_Sum1 + "<BR><BR>");

m_Sum2=parseInt(m_Str1) + parseInt(m_Str2);

document.write("После преобразования типов:<BR>");

document.write("Значение суммы чисел " + m_Str1 + " и ");

document.write(m_Str2 + " равно " + m_Sum2);

}

}

//-->

</SCRIPT>

</BODY>

</HTML>

Если в обоих диалоговых окнах набрать число 5, то в окне Web-браузера отобразится следующий текст:

До преобразования типов:

Значение суммы чисел 5 и 5 равно 55

После преобразования типов:

Значение суммы чисел 5 и 5 равно 10

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

 

3.9. Специальные символы.
Разбиение сообщения в диалоговом окне
на несколько строк

Листинг 3.10. Специальные символы

<HTML>

<HEAD>

<TITLE>Первая программа</TITLE>

</HEAD>

<BODY>

<SCRIPT language="JavaScript">

<!--

window.alert("Строка1\nСтрока2\n\nСтрока4");

//-->

</SCRIPT>

</BODY>

</HTML>

Перечислим специальные символы, доступные в JavaScript:

□ \n — перевод строки;

□ \r — возврат каретки;

□ \f — перевод страницы;

□ \t — знак табуляции;

□ \' —апостроф;

□ \" — кавычка;

□ \\ — обратная косая черта.

 



<== предыдущая лекция | следующая лекция ==>
Двоичные операторы | Массивы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.52 сек.