Учебник по JS

ГЛАВНАЯ JS Введение JS Куда Вывод JS Заявления JS JS-синтаксис JS-комментарии JS-переменные JS Пусть Константа JS JS-операторы JS-арифметика Назначение JS JS-типы данных JS-функции JS-объекты JS-события JS-строки Строковые методы JS Поиск строки JS Шаблоны строк JS JS-номера Методы номеров JS JS-массивы Методы массива JS Сортировка массива JS Итерация массива JS Константа массива JS JS-даты Форматы даты JS Методы получения даты JS Методы установки даты JS JS-математика JS Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

Определения функций Параметры функции Вызов функции Вызов функции Функция Применить Закрытие функций

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

Селекторы jQuery JQuery HTML jQuery CSS JQuery DOM

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

Объекты JavaScript HTML DOM-объекты


Преобразование типов JavaScript

  • Преобразование строк в числа
  • Преобразование чисел в строки
  • Преобразование дат в числа
  • Преобразование чисел в даты
  • Преобразование логических значений в числа
  • Преобразование чисел в логические значения

Преобразование типов JavaScript

Переменные JavaScript можно преобразовать в новую переменную и другой тип данных:

  • С помощью функции JavaScript
  • Автоматически самим JavaScript

Преобразование строк в числа

Глобальный метод Number()может преобразовывать строки в числа.

Строки, содержащие числа (например, "3.14"), преобразуются в числа (например, 3.14).

Пустые строки преобразуются в 0.

Все остальное преобразуется в NaN(не число).

Number("3.14")    // returns 3.14
Number(" ")       // returns 0
Number("")        // returns 0
Number("99 88")   // returns NaN

Числовые методы

В главе Числовые методы вы найдете больше методов, которые можно использовать для преобразования строк в числа:

Method Description
Number() Returns a number, converted from its argument
parseFloat() Parses a string and returns a floating point number
parseInt() Parses a string and returns an integer

Унарный + оператор

Унарный оператор + может использоваться для преобразования переменной в число:

Пример

let y = "5";      // y is a string
let x = + y;      // x is a number

Если переменную нельзя преобразовать, она все равно станет числом, но со значением NaN (не числом):

Пример

let y = "John";   // y is a string
let x = + y;      // x is a number (NaN)


Преобразование чисел в строки

Глобальный метод String()может преобразовывать числа в строки.

Его можно использовать для любого типа чисел, литералов, переменных или выражений:

Пример

String(x)         // returns a string from a number variable x
String(123)       // returns a string from a number literal 123
String(100 + 23)  // returns a string from a number from an expression

Метод Number toString()делает то же самое.

Пример

x.toString()
(123).toString()
(100 + 23).toString()

Дополнительные методы

В главе « Числовые методы » вы найдете больше методов, которые можно использовать для преобразования чисел в строки:

Method Description
toExponential() Returns a string, with a number rounded and written using exponential notation.
toFixed() Returns a string, with a number rounded and written with a specified number of decimals.
toPrecision() Returns a string, with a number written with a specified length

Преобразование дат в числа

Глобальный метод Number()можно использовать для преобразования дат в числа.

d = new Date();
Number(d)          // returns 1404568027739

Метод даты getTime() делает то же самое.

d = new Date();
d.getTime()        // returns 1404568027739

Преобразование дат в строки

Глобальный метод String()может преобразовывать даты в строки.

String(Date())  // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"

Метод Date toString()делает то же самое.

Пример

Date().toString()  // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"

В главе « Методы дат » вы найдете больше методов, которые можно использовать для преобразования дат в строки:

Method Description
getDate() Get the day as a number (1-31)
getDay() Get the weekday a number (0-6)
getFullYear() Get the four digit year (yyyy)
getHours() Get the hour (0-23)
getMilliseconds() Get the milliseconds (0-999)
getMinutes() Get the minutes (0-59)
getMonth() Get the month (0-11)
getSeconds() Get the seconds (0-59)
getTime() Get the time (milliseconds since January 1, 1970)

Преобразование логических значений в числа

Глобальный метод Number()также может преобразовывать логические значения в числа.

Number(false)     // returns 0
Number(true)      // returns 1

Преобразование логических значений в строки

Глобальный метод String()может преобразовывать логические значения в строки.

String(false)      // returns "false"
String(true)       // returns "true"

Булев метод toString()делает то же самое.

false.toString()   // returns "false"
true.toString()    // returns "true"

Автоматическое преобразование типов

Когда JavaScript пытается работать с «неправильным» типом данных, он пытается преобразовать значение в «правильный» тип.

Результат не всегда соответствует ожиданиям:

5 + null    // returns 5         because null is converted to 0
"5" + null  // returns "5null"   because null is converted to "null"
"5" + 2     // returns "52"      because 2 is converted to "2"
"5" - 2     // returns 3         because "5" is converted to 5
"5" * "2"   // returns 10        because "5" and "2" are converted to 5 and 2

Автоматическое преобразование строк

JavaScript автоматически вызывает toString()функцию переменной, когда вы пытаетесь «вывести» объект или переменную:

document.getElementById("demo").innerHTML = myVar;

// if myVar = {name:"Fjohn"}  // toString converts to "[object Object]"
// if myVar = [1,2,3,4]       // toString converts to "1,2,3,4"
// if myVar = new Date()      // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"

Числа и логические значения тоже конвертируются, но это не очень заметно:

// if myVar = 123             // toString converts to "123"
// if myVar = true            // toString converts to "true"
// if myVar = false           // toString converts to "false"

Таблица преобразования типов JavaScript

В этой таблице показан результат преобразования различных значений JavaScript в числа, строки и логические значения:

Original
Value
Converted
to Number
Converted
to String
Converted
to Boolean
Try it
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

Значения в кавычках обозначают строковые значения.

Красные значения указывают значения (некоторые), которые программисты могут не ожидать.