Типы данных JavaScript

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 Попробуйте

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

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