Сценарии JavaScript в активных страницах Web

         

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


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

Поясним это на примере (листинг 1.9).

Листинг 1.9. Файл Conversion/Conversion.html

<HTML>

  <HEAD>

    <TITLE>Type conversion sample</TITLE>

  </HEAD>

  <BODY BGCOLOR=white>

    <H1>Type conversion sample</H1>

    <TABLE>

    <SCRIPT LANGUAGE="JavaScript">

    <!--

      var szTextBuf = "";



      szTextBuf = 4 + "&nbsp;- число четыре" + "<BR>";

      szBuf2 = (parseInt("2") + 2) + "&nbsp;- число четыре" + "<BR>";

      document.write(szTextBuf + szBuf2);

    // -->

    </SCRIPT>

    </TABLE>

  </BODY>

</HTML>

Здесь мы объявили переменную szTextBuf и проинициализировали ее пустой строкой. Далее мы присвоили этой строке сумму числа 4 и двух текстовых строк:

szTextBuf = 4 + "&nbsp;- число четыре" + "<BR>";

При вычислении этого выражения значение 4 было автоматически преобразовано в текстовую строку. Дальнейшее суммирование выполнялось как слияние (конкатенация) трех текстовых строк.

Обратите внимание на символ неразделяющего пробела &nbsp;, который используется в документах HTML. Если заменить его на обычный пробел, то после конкатенации строк этот пробел исчезнет.

В следующей строке мы преобразовываем текстовую строку “2” в численное значение с помощью функции parseInt, прибавляем к результату преобразования число 2, а затем выполняем конкатенацию с двумя текстовыми строками:

szBuf2 = (parseInt("2")+2)+"&nbsp;- число четыре"+ "<BR>";

В результате переменная szBuf2 будет содержать ту же самую строку, что и переменная szTextBuf, в чем нетрудно убедиться, взглянув на рис. 1.8.

Рис. 1.8. Результат работы сценария, представленного в листинге 1.9

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



Содержание раздела