JavaScript Преобразование типов
- Преобразование строк в числа
- Преобразование чисел в строки
- Преобразование дат в числа
- Преобразование чисел в даты
- Преобразование логических значений в числа
- Преобразование чисел в логические значения
JavaScript Преобразование типов
Переменные JavaScript можно преобразовать в новую переменную и другой тип данных:
- С помощью функции JavaScript
- Автоматически самим JavaScript
Преобразование строк в числа
Глобальный метод Number() может преобразовывать строки в числа.
Строки, содержащие числа (например "3.14") преобразуются в числа (например 3.14).
Пустые строки преобразуются в 0.
Все остальное преобразуется в NaN (Not a Number - Не число).
            Number("3.14")    // возвращает 3.14
            Number(" ")       // возвращает 0 
            Number("")         // возвращает 0
            Number("99 88")   // возвращает NaN
        
    Числовые методы
В главе Числовые методы вы найдёте другие методы, которые можно использовать для преобразования строк в числа:
| Метод | Описание | 
|---|---|
| Number() | Возвращает число, преобразованное из его аргумента | 
| parseFloat() | Анализирует строку и возвращает число с плавающей запятой | 
| parseInt() | Анализирует строку и возвращает целое число | 
Унарный оператор +
Унарный оператор + можно использовать для преобразования переменной в число:
Если переменную невозможно преобразовать, она всё равно станет числом, но со значением NaN (Not a Number):
Пример
            let y = "John";  
            // y является строкой
            let x = + y;      // x является числом (NaN)
        Попробуйте сами »
    Преобразование чисел в строки
Глобальный метод String() может преобразовывать числа в строки.
Его можно использовать с любым типом чисел, литералов, переменных или выражений:
Пример
            String(x)         // возвращает строку из числовой переменной x
            String(123)       // возвращает строку из числового литерала 123
            String(100 + 23)  // возвращает строку из числа из выражения
        Попробуйте сами »
    Числовой метод toString() делает то же самое.
Больше методов
В главе Числовые методы вы найдете другие методы, которые можно использовать для преобразования чисел в строки:
| Метод | Описание | 
|---|---|
| toExponential() | Возвращает строку с округленным числом, записанным с использованием экспоненциальной записи | 
| toFixed() | Возвращает строку с округленным числом и записанным с указанным количеством десятичных знаков | 
| toPrecision() | Возвращает строку с числом, записанным с указанной длиной | 
Преобразование дат в числа
Глобальный метод Number() можно использовать для преобразования дат в числа.
            d = new Date();
Number(d)          // возвращает 1404568027739
        
    Метод даты getTime() делает то же самое.
            d = new Date();
d.getTime()        // возвращает 1404568027739
        
    Преобразование дат в строки
Глобальный метод String() может преобразовывать даты в строки.
            String(Date())  // возвращает "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
    Метод даты toString() делает то же самое.
Пример
            Date().toString()  // возвращает "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
    В главе Методы даты вы найдете больше методов, которые можно использовать для преобразования дат в строки:
| Метод | Описание | 
|---|---|
| getDate() | Получите день в виде числа (1-31) | 
| getDay() | Получите номер дня недели (0-6) | 
| getFullYear() | Получите четырехзначный год (yyyy) | 
| getHours() | Получите час (0-23) | 
| getMilliseconds() | Получите миллисекунды (0-999) | 
| getMinutes() | Получите минуты (0-59) | 
| getMonth() | Получите месяц (0-11) | 
| getSeconds() | Получите секунды (0-59) | 
| getTime() | Получите время (миллисекунды с 1 января 1970 г.) | 
Преобразование логических значений в числа
Глобальный метод Number() также может преобразовывать логические значения в числа.
            Number(false)     // возвращает 0
            Number(true)      // возвращает 1
        
    Преобразование логических значений в строки
Глобальный метод String() может преобразовывать логические значения в строки.
            String(false)      // возвращает "false"
            String(true)       // возвращает "true"
        
    Логический метод toString() делает то же самое.
            false.toString()   // возвращает "false"
            true.toString()    // возвращает "true"
        
    Автоматическое преобразование типов
Когда JavaScript пытается оперировать "неправильным" типом данных, он попытается преобразовать значение в "правильный" тип.
Результат не всегда соответствует вашим ожиданиям:
            5 + null    // возвращает 5         потому что null преобразуется в 0
"5" + null  // возвращает "5null"   потому что null преобразуется в "null"
"5" + 2     // возвращает "52"      потому что 2 преобразуется в "2"
            "5" - 2     // возвращает 3         потому что "5" преобразуется в 5
"5" * "2"   // возвращает 10        потому что "5" и "2" преобразуются в 5 и 2
        Попробуйте сами »
    Автоматическое преобразование строк
JavaScript автоматически вызывает функцию переменной toString() когда вы пытаетесь "вывести" объект или переменную:
            document.getElementById("demo").innerHTML = myVar;
            // if myVar = {name:"Fjohn"}  // toString преобразуется в "[object Object]"
            // if myVar = [1,2,3,4]       // toString преобразуется в "1,2,3,4"
            // if myVar = new Date()      // toString преобразуется в "Fri Jul 18 2014 09:08:55 GMT+0200"
        
    Числа и логические значения также преобразуются, но это не очень заметно:
            // if myVar = 123             // toString преобразуется в "123"
            // if myVar = true            // toString преобразуется в "true"
            // if myVar = false           // toString преобразуется в "false"
        
    Таблица преобразования типов JavaScript
В этой таблице показан результат преобразования различных значений JavaScript в Number, String и Boolean:
| Оригинал Значение | Преобразование в Number | Преобразование в String | Преобразование в Boolean | Попробуй это | 
|---|---|---|---|---|
| false | 0 | "false" | false | Попробуй это » | 
| true | 1 | "true" | true | Попробуй это » | 
| 0 | 0 | "0" | false | Попробуй это » | 
| 1 | 1 | "1" | true | Попробуй это » | 
| "0" | 0 | "0" | true | Попробуй это » | 
| "000" | 0 | "000" | true | Попробуй это » | 
| "1" | 1 | "1" | true | Попробуй это » | 
| NaN | NaN | "NaN" | false | Попробуй это » | 
| Infinity | Infinity | "Infinity" | true | Попробуй это » | 
| -Infinity | -Infinity | "-Infinity" | true | Попробуй это » | 
| "" | 0 | "" | false | Попробуй это » | 
| "20" | 20 | "20" | true | Попробуй это » | 
| "twenty" | NaN | "twenty" | true | Попробуй это » | 
| [ ] | 0 | "" | true | Попробуй это » | 
| [20] | 20 | "20" | true | Попробуй это » | 
| [10,20] | NaN | "10,20" | true | Попробуй это » | 
| ["twenty"] | NaN | "twenty" | true | Попробуй это » | 
| ["ten","twenty"] | NaN | "ten,twenty" | true | Попробуй это » | 
| function(){} | NaN | "function(){}" | true | Попробуй это » | 
| { } | NaN | "[object Object]" | true | Попробуй это » | 
| null | 0 | "null" | false | Попробуй это » | 
| undefined | NaN | "undefined" | false | Попробуй это » | 
Значения в кавычках обозначают строковые значения.
Красные значения указывают на значения, которых (некоторые) программисты могут не ожидать.

