Page 79 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 79
со значениями, но обладают по сравнению с объектами некоторыми преимущества
ми в определенных ситуациях. Наборы подобны массивам, но не могут содержать
дубликатов. Их слабые аналоги обладают подобными функциями, но более эффек
тивны в определенных ситуациях, в обмен на функциональные возможности.
Мы рассмотрим отображения и наборы в главе 0 .
1
Пр е образован и е типов данных
Преобразование данных из одного типа в другой - весьма популярная задача.
Данные, вводимые пользователем или поступающие из других систем, зачастую сле
дует преобразовывать. В этом разделе рассматриваются некоторые из наиболее об
щих методик преобразования данных.
Преобразова н и е в ч и словой формат
Весьма распространено преобразование строк в числа. Когда вы получаете ввод
от пользователя, то обычно это строка, даже если вы запрашивали числовое значе
ние. JavaScript предоставляет несколько методов преобразования строки в число.
Первый из них - использовать конструктор объекта NwnЬer5•
const numStr = " 3 3 . 3 " ;
const num = NumЬer ( n umStr) ; / / это создает значение числа , а *не*
/ / экземпляр объекта Number
Если строка не может быть преобразована в число, возвращается NaN.
Второй метод подразумевает использование встроенной функции parseint или
parseFloat. Они ведут себя аналогично конструктору NwnЬer, за несколькими ис
ключениями. Функция parseint позволяет определить основание системы счисления
(radix) получаемого значения. Например, она позволяет задать основание 6 , чтобы
1
получать шестнадцатеричные числа. Основание системы счисления рекомендуется
определять всегда, даже если это 10 (стандартное). Функции parseint и parseFloat
отбрасывают все, что находят после числа, позволяя использовать не полностью от
фильтрованный ввод. Вот примеры.
(
t
const а = parseint " 1 6 vol s " , 1 0 ) ; 1 1 слово " vol ts " игнорируется; 1 6
// преобразуется по основанию 1 0
const Ь parseint " За" , 1 6 ) ; // п р еобразуется шестнадцатеричное
(
/ / За ; результат - 58
const с parseFloat ( " 1 5 . 5 kp " ) ; // слово " k рh " игнорируется;
h
// parseFloa t всегда подразумевает
// основание 1 0
5 Обычно конструктор используется с ключевым словом new, о котором мы узнаем в главе 9; но это
частный случай.
Преобразование типов данных 77

