Типы данных JavaScript
- Предыдущая страница JS typeof
- Следующая страница Деструктуризация JS
Number()
Преобразование чисел,String()
Преобразование строк,Boolean()
Преобразование булевых значений.
Типы данных JavaScript
В JavaScript есть пять типов данных, которые могут содержать значения:
- Строка (string)
- Число (number)
- Булево (boolean)
- Объект (object)
- Функция (function)
Есть три типа объектов:
- Объект (Object)
- Дата (Date)
- Массив (Array)
Вместе есть два типа данных, которые не могут содержать значения:
- null
- undefined
Оператор typeof
Вы можете использовать typeof
Оператор来确定 JavaScript переменной данных типа.
Пример
typeof "Bill" // Возвращает "string" typeof 3.14 // Возвращает "number" typeof NaN // Возвращает "number" typeof false // Возвращает "boolean" typeof [1,2,3,4] // Возвращает "object" typeof {name:'Bill', age:62} // Возвращает "object" typeof new Date() // Возвращает "object" typeof function() {} // Возвращает "function" typeof myCar // Возвращает "undefined" * typeof null // Возвращает "object"
Обратите внимание:
- Тип данных NaN - это числовой
- Тип данных массива - это объект
- Тип данных даты - это объект
- Тип данных null - это объект
- Тип данных неопределенной переменной undefined
- Тип данных переменной, не имеющей значения, также undefined
Вы не можете использовать typeof
использовать для определения того, является ли JavaScript объект массивом (или датой).
Тип данных typeof
typeof
Оператор не переменная. Это оператор. Оператор (например +
-
*
/
) нет типа данных.
Но,typeof
Всегда будетВозвращает строку(включая тип операнда).
Свойство constructor
constructor
Свойство возвращает конструктор всех переменных JavaScript.
Пример
function String() { [native code] } function Number() { [native code] } function Boolean() { [native code] } function Array() { [native code] } function Object() { [native code] } new Date().constructor // Возврат "function Date() { [native code] }" function () {}.constructor // Возврат "function Function(){ [native code] }"
Вы можете проверить constructor
Свойство, чтобы определить, является ли объект массивом (содержит слово "Array"):
Пример
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1;
Или еще проще, вы можете проверить, является ли объект функцией массива:
Пример
function isArray(myArray) { return myArray.constructor === Array;
Вы можете проверить constructor
Свойство, чтобы определить, является ли объект датой (содержит слово "Date"):
Пример
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1;
或者 еще проще, вы можете проверить, является ли объект функцией даты:
Пример
function isDate(myDate) { return myDate.constructor === Date;
Типы данных JavaScript
Переменные JavaScript могут быть преобразованы в новые переменные и другой тип данных:
- Используя функцию JavaScript
- Через сам JavaScriptАвтоматическиПреобразование
Преобразование числового значения в строку
Глобальная функция String()
Может преобразовать число в строку.
Он может быть использован для любого типа чисел, текста, переменных или выражений:
Пример
String(x) // Возврат строки из числового переменной x String(123) // Возврат строки из числового текста 123 String(100 + 23) // Возврат строки из числового значения выражения
Числовые методы toString()
Тоже самое.
Пример
x.toString() (123).toString() (100 + 23).toString()
ВЧисловые методыВ этой главе вы узнаете о дополнительных методах, которые можно использовать для преобразования чисел в строки:
Метод | Описание |
---|---|
toExponential() | Возврат строки, округляющий число и пишущий его в виде степени с основанием 10. |
toFixed() | Возврат строки, округляющий число и пишущий его с указанным количеством десятичных знаков. |
toPrecision() | Возврат строки, пишущая число с указанной длиной. |
Преобразование булева в строку
Глобальная функция String()
Может преобразовать булево в строку.
String(false) // Возвращает "false" String(true) // Возвращает "true"
Булевые методы toString()
Тоже самое.
false.toString() // Возвращает "false" true.toString() // Возвращает "true"
Преобразование даты в строку
Глобальная функция String()
Дату можно преобразовать в строку.
String(Date())
Методы даты toString()
Тоже самое.
Пример
Date().toString()
ВМетоды датыВ этой главе вы найдете больше методов, которые можно использовать для преобразования даты в строку:
Метод | Описание |
---|---|
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()
Строки можно преобразовать в числа.
Строки, содержащие числа (например, "3.14"), преобразуются в числа (например, 3.14).
Пустая строка преобразуется в 0。
Другие строки будут преобразованы в NaN
(Не число,не число)。
Number("3.14") // Возвращает 3.14 Number(" ") // Возвращает 0 Number("") // Возвращает 0 Number("99 88") // Возвращает NaN
ВЧисловые методыВ этой главе вы найдете больше методов, которые можно использовать для преобразования строк в числа:
Метод | Описание |
---|---|
parseFloat() | Парсит строку и возвращает вещественное число. |
parseInt() | Парсит строку и возвращает целое число. |
Унарный оператор +
Унарные +
ОператорыДоступны операторы для преобразования переменных в числа:
Пример
var y = "5"; // y - это строка var x = + y; // x - это число
Если переменная не может быть преобразована, она все равно останется числом, но значение будет NaN
(Не число):
Пример
var y = "Bill"; // y - это строка var x = + y; // x является числом (NaN)
Преобразование буллов в числовые значения
Глобальная функция Number()
Также можно преобразовать буллы в числа.
Number(false) // возвращает 0 Number(true) // возвращает 1
Преобразование даты в число
Глобальная функция Number()
Используется для преобразования даты в число.
d = new Date(); Number(d)
Методы даты getTime()
Тоже самое.
d = new Date(); d.getTime()
Автоматическое преобразование типов
Если 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; // Если myVar = {name:"Fjohn"} // toString преобразует в "[object Object]" // Если myVar = [1,2,3,4] // toString преобразует в "1,2,3,4" // Если myVar = new Date() // toString преобразует в ""
Числа и буллы также будут преобразованы, но это не так明显:
// Если myVar = 123 // toString преобразует в "123" // Если myVar = true // toString преобразует в "true" // Если myVar = false // toString преобразует в "false"
Таблица типов преобразований JavaScript
В таблице ниже приведены результаты преобразования различных значений JavaScript в числа, строки и логические значения:
Исходное значение | Преобразование в число | Преобразование в строку | Преобразование в логическое | Попробуйте |
---|---|---|---|---|
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 | Попробуйте |
Значения в кавычках указывают на строковые значения.
Красные значенияУказывает на значения, которые (некоторые) программисты могут не ожидать.
- Предыдущая страница JS typeof
- Следующая страница Деструктуризация JS