Даже если JavaScript является слабо типизированным языком, вам может потребоваться преобразовать значение из одного типа в другой.
В JavaScript у нас есть эти примитивные типы:
НомерСтрокаЛогический- Символ
и тип объекта:
Объект
(плюс ноль и неопределенный , но нет смысла бросать от/к ним)
Например, вы можете захотеть преобразовать:
- число в строке
- строка к числу
- строка в логическое значение
- логическое значение для строки
…и так далее.
Вот методы, которые вы можете использовать для преобразования из одного типа в другой. Я освещаю наиболее распространенные случаи.
Преобразование в строки
В общем случае преобразование из чего-либо в строку обычно заключается в вызове метода toString() для любого значения, и JavaScript создаст строковое значение, соответствующее этому типу. Или вы можете передать любое значение в глобальную функцию String() .
Приведение от числа к строке
Используйте глобальную функцию String или метод числового типа toString() :
String(10) //"10" (10).toString() //"10"
Приведение от логического к строковому
Используйте глобальную функцию String или метод логического типа toString() :
String(true) //"true" true.toString() //"true" String(false) //"false" false.toString() //"false"
Приведение от даты к строке
Используйте глобальную функцию String или метод типа данных toString() :
String(new Date('2019-01-22'))
//"Tue Jan 22 2019 01:00:00 GMT+0100 (Central European Standard Time)"
(new Date('2019-01-22')).toString()
//"Tue Jan 22 2019 01:00:00 GMT+0100 (Central European Standard Time)"
Особые случаи со строкой
String(null) //"null" String(undefined) //"undefined" String(NaN) //"NaN"
Преобразование в числа
Приведение от строки к числу
Мы можем сделать это с помощью глобальной функции Number() , которая является своего рода конструктором. Мы можем передать ему строку, и JavaScript выяснит, как преобразовать ее в число:
Number("1") //1
Number("0") //0
Строки обрезаются перед преобразованием в числа:
Number(" 1 ") //1
передача пустой строки по умолчанию равна 0:
Number("") //0
а для работы с десятичными дробями вы используете точку:
Number("12.2")Если строка содержит недопустимые символы, она создаст NaN .
Это основы преобразования в числа, но я даю гораздо больше подробностей в как преобразовать строку в число в JavaScript . Существуют и другие способы генерации чисел из строки, включая parseInt() , parseFloat() , Math.floor() , унарный + оператор.
Приведение от логического значения к числу
Как и в случае со строкой, передача логического значения в Number() вернет либо 0, либо 1:
Number(true) //1 Number(false) //0
Кастинг от даты к номеру
Если вы передадите объект даты в Number() , он вернет метку времени даты, которая является наилучшим преобразованием даты в число, которое вы можете получить.
Особые случаи с номером
Number(null) //0 Number(undefined) //NaN Number(NaN) //NaN
Преобразование в логическое
Любое значение можно преобразовать в логическое, передав его в Boolean() .
Все значения будут разрешены в true , за исключением:
Boolean(false) //false
Boolean(0) //false
Boolean(NaN) //false
Boolean("") //false
Boolean(null) //false
Boolean(undefined) //false
Оригинал: “https://flaviocopes.com/javascript-casting/”