Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем рубрику Заметки по JavaScript, в которой мы успели поговорить о типах данных JavaScript, рассмотрели JavaScript числа и формы представления чисел в JavaScript, поговорили о JavaScript строках, а также о вставки JavaScript в HTML страницы.
В публикациях JavaScript строки и символы и JavaScript числа я уже затронул вопрос преобразования строк и чисел JavaScript в другие типы данных, но не останавливался подробно на этом вопросе. Данная публикация как раз и призвана исправить этот недостаток.
Сегодня мы поговорим о преобразование число в строку JavaScript и строки в число JavaScript, поговорим о методах JavaScript, которые предназначены для преобразования строки в число JavaScript и числа в строку JavaScript. Следует сказать, что интерпретатор JavaScript – гибкая вещь, которая по мере надобности может преобразовывать строки и числа, это связано с тем, что JavaScript – это слабо типизированный язык программирования. Начинающих программистов факт того, что JavaScript слабо типизирован обычно радует, но со временем и с приходящим опытом слабая типизация данных в JavaScript начинает раздражать, так как всплывают все минусы слабо типизированных языков. Конечно, кто-то и не почувствует эти недостатки языка JavaScript, так как многие его используются для создания слайд-шоу JavaScript и красивых анимационных эффектов. Ну да ладно, сегодня нас интересует преобразование строки в число JavaScript и число в строку JavaScript.
Преобразование число в строку JavaScript. JavaScript функции String (). JavaScript методы toString (), toFixed (), toExponential (), toPrecision ().
Начнем мы с преобразования число в строку JavaScript, так как данное преобразование более простое, а интерпретатор JavaScript может выполнять его автоматически по мере надобности, по мере обработки JavaScript кода.
В публикации JavaScript строки был раздел работа со строками, в которой я писал про конкатенацию строк JavaScript. Так вот, если JavaScript число используется в операции конкатенации, то оно автоматически будет преобразовано в строку JavaScript:
[php]
vorony = 12;
str = vorony + “ ворон на ветке.”
[/php]
Но, мы знаем, что строки в JavaScript могут быть пустыми и, следовательно, мы можем намеренно преобразовать число в строку JavaScript, просто сложив JavaScript число с пустой строкой:
[php]
n = 5;
str = n+””;
[/php]
В JavaScript имеются встроенная функция, которая позволяет явно преобразовать число в строку JavaScript – функция String (), не путайте функцию String () с JavaScript объектом String.
[php]
var str = String (число);
[/php]
В качестве аргумента функции String () следует передавать число или переменную, содержащую JavaScript число. В JavaScript имеется объект Number, у которого есть метод toString (), этот метод позволяет переводить число в строку JavaScript. Данный способ преобразования числа в строку имеет место быть из-за особенности JavaScript. Все JavaScript числа автоматически могут быть преобразованы в JavaScript объект Number. Благодаря этой особенности языка JavaScript мы и можем пользоваться JavaScript методом toString ().
Метод toString () может принимать один необязательный аргумент в виде числа, аргумент передается методу toString () в том случае, если нужно явно указать основание системы счисления, в которой записано число. По умолчанию принимается десятичная система счисления.
На примере будет лучше видно то, как работает JavaScript метод toString ():
[php]
var numb = 12;
new_string = numb.toString (2); //метод toString () вернет строку “1100”
new_str = numb.toString (8); //метод toString () вернет строку “014”
new_s=numb.toString (16); //метод toString () вернет строку “0xC”
[/php]
Если вам необходимо указать количество знаков после запятой или представить число в строке в экспоненциальной форме, например, для отображения денежных единиц, то вы всегда сможете воспользоваться методом JavaScript объекта Number – toFixed (). JavaScript метод toFixed () переводит число в строку и при этом можно задать количество знаков после запятой. Метод toFixed () позволяет указать количество знаков после запятой, но не позволяет представлять JavaScript числа в экспоненциальной форме.
Для преобразования числа в строку существует JavaScript метод toExponential (), метод toExponential () относится к методам JavaScript объекта Number. Метод toExponential () преобразует JavaScript число в строку и записывает его в экспоненциальной форме, при этом можно указать количество знаков после точки. Обратите внимание: знак перед точкой всегда только один!
В JavaScript есть еще один метод, позволяющий преобразовывать число в строку. Метод toPrecision () JavaScript объекта Number. Метод toPrecision () позволяет преобразовывать число в строку в экспоненциальной форме, с указание количества разрядов в целой части числа.
Каждый из описанных методов: toPrecision (), toExponential (), toFixed (), выполняют округление чисел корректно.
А теперь пример:
[php]
var numb = 123456.789;
numb.toFixed (3); //вернет JavaScript строку “123456.789”
numb.toExponential (1); // вернет JavaScript строку “1.235e+5”
numb.toPrecision (7); // вернет JavaScript строку “123456.8”
[/php]
Более подробно все описанные JavaScript методы объекта Number будут описаны позже в статье посвященной методам объекта Number. А сейчас мы переходим к преобразованию строка в число JavaScript.
Преобразование строка в число JavaScript. JavaScript функция Number (). JavaScript методы parseInt () и parseFloat ().
Продолжаем разбираться с преобразованием типов данных JavaScript. Данный раздел будет посвящен преобразованию строки в число JavaScript. Так как с преобразованием число в строку JavaScript мы уже более-менее разобрались.
JavaScript интерпретатор, как и в случае с преобразованием число в строку, может выполнить преобразование строки в число JavaScript автоматически. Например, если у вас возникнет желание перемножить две JavaScript строки, то есть воспользоваться арифметическим оператором JavaScript:
[php]
var str = “1”;
var newstr =”2”;
var numb = str*newstr; // в результате получится JavaScript число 2
[/php]
Благодаря тому, что интерпретатор JavaScript может выполнять преобразования числа в строку автоматически, мы можем использовать другой арифметический оператор JavaScript, оператор вычитания. Просто вычитаем ноль из строки. Но, мы не можем использовать оператор сложения, так как в этом случае произойдет конкатенация строк JavaScript.
Преобразования строка в число JavaScript можно выполнять явно при помощи функций JavaScript, например, функция Number () позволяет преобразовывать JavaScript строку в число. Но, у этой функции есть один недостаток, она может выполнять преобразования только десятичных чисел.
[php]
var str = “123456”;
var n = Number (str);
[/php]
Используя функцию Number () будьте осторожны, так как нельзя допустить появление в строке других JavaScript символов, отличных от цифр, кроме пробелов, пробелы могут находиться как в начале строки, так и в конце строки.
В JavaScript есть две функции, с помощью которых можно выполнять преобразование число в строку и при этом не задумываться о символах в JavaScript строке, которые не являются цифрами. Функции JavaScript parseInt () и parseFloat (). Но, у функций parseInt () и parseFloat () есть один недостаток – они преобразовывают только те строковые символы в число, которые находятся в начале JavaScript строки.
JavaScript функция parseInt (). Из названия этой функции понятно, что она может работать только с целыми числами, то есть, на выходе функции parseInt () мы получим целые числа JavaScript. Функция parseInt () помимо того, что она может работать с целыми числами, она еще может представлять шестнадцатеричные числа, в том случае, если строка начинается с последовательности символов “0x” или “0X”, так что будьте аккуратны(про шестнадцатеричную систему счисления вы можете прочитать в публикации посвященной физической модели RGB). Функция parseInt () может принимать два аргумента, один из них обязательный, другой аргумент необязательный. В качестве первого аргумента JavaScript функция parseInt () принимает стоку, которую она преобразовывает в число, а в качестве второго аргумента функция parseInt () принимает основание системы счисления(от 2 до 36).
JavaScript функция parseFloat (). Как видно из имени функции parseFloat – она работает с вещественными числами, но функция parseFloat () может работать и с целыми числами. То есть, на выходе функции parseFloat () мы можем получить как вещественные числа, так и целые числа. Функция parseFloat () может работать только с десятичной системой счисления.
[php]
parseInt (“5 человек”); //вернет число 5
parseInt (“3.14”); //вернет число 3
parseInt (“111”, 2); //вернет число 7
parseFloat (234.567 метров); //вернет число 234.567
[/php]
Обе эти функции: parseInt () и parseFloat () преобразуют строки в числовой тип данных JavaScript и при этом они игнорируют все JavaScript символы, которые не являются цифрами! Обратите внимание: если вы опускаете второй аргумент для функции parseInt (), то по умолчанию считайте, что это 10, кроме случаев, когда JavaScript строка начинается с последовательности “0x” или “0X”.
Не забывайте: если число будет находиться в конце или в середине строки, то эти функции не смогут выполнить преобразования строка в число JavaScript.
На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru. Не забываем комментировать и делиться с друзьями;)
Pingback: Сергей
Здравствуйте, Сергей! Тут все очень просто, нужно сделать явное преобразование строка в число JavaScript. Например:
[php]
var a = prompt ("Подсказка", "");
var a = parseInt (a);
[/php]
Таким образом мы сделали явное преобразования строки в число JavaScript, и теперь в переменной a находится числовой тип данных JavaScript. То есть функция parseInt () позволяет явно преобразовать строки в числа в JavaScript