Уроки web-программирования «Java Script (JS): преобразование типов данных». |
Автор megabax | |||||
11.04.2010 г. | |||||
Уроки web-программирования «Java Script (JS): преобразование типов данных».
В Java Script преобразование типов данных, участвующих в выражении, производиться автоматически. Например, если мы запишем:
то переменная 'a' у нас будет содержать строку "10 негритят", то есть, у нас число автоматом преобразуется в строку, к которой прибавиться другая строка. Если мы запишем выражение: 3+"2" то в результате у нас будет срока "32". Тоесть, если мы складываем числа и строки, то система думают, что числа - это строки и преобразует их именно в строки. Почему так? А потому, что мы не можем сложить число со строкой. А про то, что "2" - это число, записанное в форму строки, компьютер не догадывается. Другое дело, если мы попытаемся вычесть из числа строку: 3-"2" в результате получим 1. Давайте проверим это на примере:
Как и следовало ожидать, результатом вычисления стала единица:
Спрашивается, а почему в случае с вычитанием строки преобразуются в числа, а при сложении числа в строки? А потому, что мы не можем вычесть одну строку из другой, это бессмыслица какая то получается. Е если мы попробуем из числа вычесть строку, которая не может быть преобразована в число? Давайте проверим:
И вот что нам выдала программа:
Возникает еще вопрос, а как быть, если нам надо сложить значения как числа, но они хранятся у нас в строковых переменных? Можно воспользоваться функцией parseInt или parseFloat. Рассмотрим работу этих функций на примере:
Вот что выдаст нам программа:
Как видим, parseInt отличается от parseFloat тем, что первая просто тупо и решительно отбрасывает дробную часть.
Если в арифметическом выражении у нас встретиться логический тип, то значение true преобразуется к 1, false к 0. Если встретиться null, то он будет преобразован в 0, если undefined - то в NaN. В логических выражениях значения будут преобразованы к булевому типу. 0, пустая строка (""), NaN, null, undefined при этом преобразуются в значение false, любое другое значение в true. Следует так же помнить о том, что в Java Script нет разделения между целочисленным и дробным типом. Поэтому при делении целых чисел отсутствует автоматическое преобразование в целое число. В частности в Pascal-е результат деления 1/3 будет 0, а в JavaScript 0.3333333333.
|
|||||
Последнее обновление ( 11.04.2010 г. ) |
« След. | Пред. » |
---|