Последние учебники веб-разработки
×

JS Руководство

JS ГЛАВНАЯ JS Введение JS Куда JS Вывод JS Синтаксис JS Заявления JS Комментарии JS переменные JS операторы JS арифметика JS присваивание JS Типы данных JS функции JS Объекты JS Объем JS Мероприятия JS Строки JS Методы струнных JS чисел JS Методы Number JS математический JS Даты JS Форматы даты JS Методы Дата JS Массивы JS Методы массивов JS Booleans JS Сравнения JS условия JS переключатель JS петля For JS В то время как Loop JS Ломать JS Тип преобразования JS RegExp JS ошибки JS отладка JS Подъемно JS Строгий режим JS Гид по стилю JS Лучшие практики JS Ошибки JS Представление JS Зарезервированные слова JS JSON

JS формы

Формы проверки Формы API

JS объект

Определения объектов Свойства объекта Методы объекта Прототипы объектов

JS функции

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

JS HTML DOM

DOM вступление DOM методы DOM Документ DOM элементы DOM HTML DOM CSS DOM Анимации DOM Мероприятия DOM EventListener DOM навигация DOM Вершины DOM Nodelist

JS браузер BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Примеры

JS Примеры JS HTML DOM JS HTML вход JS HTML Объекты JS HTML Мероприятия JS браузер JS викторина JS Резюме

JS Рекомендации

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


 

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


Number() преобразуется в Number, String() преобразует в строку, Boolean() преобразуется в логическое значение.


Типы данных JavaScript

В JavaScript существует 5 различных типов данных, которые могут содержать значения:

  • string
  • number
  • boolean
  • object
  • function

Есть 3 типа объектов:

  • Object
  • Date
  • Array

А типы 2 данных, которые не могут содержать значения:

  • null
  • undefined

typeof Оператор

Вы можете использовать typeof оператор , чтобы найти тип данных переменной JavaScript.

пример

typeof "John"                 // Returns string
typeof 3.14                   // Returns number
typeof NaN                    // Returns number
typeof false                  // Returns boolean
typeof [1,2,3,4]              // Returns object
typeof {name:'John', age:34}  // Returns object
typeof new Date()             // Returns object
typeof function () {}         // Returns function
typeof myCar                  // Returns undefined (if myCar is not declared)
typeof null                   // Returns object
Попробуй сам "

Обратите внимание:

  • Тип данных NaN является номером
  • Тип данных array является объектом
  • Тип данных date является объектом
  • Тип данных null является объектом
  • Тип данных undefined переменной не определено

Вы не можете использовать typeof , чтобы определить , является ли объект JavaScript является массивом (или дата).


Тип данных typeof

typeof оператор не является переменной. Он является оператором. Операторы ( + - * / ) не имеют никакого типа данных.

Но, то typeof оператор всегда возвращает строку , содержащую тип операнда.


constructor недвижимости

constructor свойство возвращает функцию конструктора для всех переменных JavaScript.

пример

"John".constructor                 // Returns function String()  { [native code] }
(3.14).constructor                 // Returns function Number()  { [native code] }
false.constructor                  // Returns function Boolean() { [native code] }
[1,2,3,4].constructor              // Returns function Array()   { [native code] }
{name:'John', age:34}.constructor  // Returns function Object()  { [native code] }
new Date().constructor             // Returns function Date()    { [native code] }
function () {}.constructor         // Returns function Function(){ [native code] }
Попробуй сам "

Вы можете проверить свойство конструктора , чтобы выяснить , является ли объект массивом (содержит слово "Array" ):

пример

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}
Попробуй сам "

Вы можете проверить свойство конструктора , чтобы выяснить , если объект является Date (содержит слово "Date" ):

пример

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}
Попробуй сам "

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

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

  • При использовании функции JavaScript
  • Автоматически самой JavaScript

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

Глобальный метод 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
Попробуй сам "

Способ номер toString() делает то же самое.

пример

x.toString()
(123).toString()
(100 + 23).toString()
Попробуй сам "

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

метод Описание
toExponential() Возвращает строку с номером закругленным и записываются с помощью экспоненциальной нотации.
toFixed() Возвращает строку с номером округляется и пишется с заданным количеством знаков после запятой.
toPrecision() Возвращает строку с числом, записанным с заданной длиной

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

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

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

Логический метод toString() делает то же самое.

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

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

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

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

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

пример

Date().toString()   // returns 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() может преобразовывать строки в числа.

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

Пустые строки конвертировать в 0.

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

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

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

метод Описание
parseFloat() Анализирует строку и возвращает число с плавающей запятой
parseInt() Анализирует строку и возвращает целое число

Унарное + Оператор

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

пример

var y = "5";      // y is a string
var x = + y;      // x is a number
Попробуй сам "

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

пример

var y = "John";   // y is a string
var x = + y;      // x is a number (NaN)
Попробуй сам "

Преобразование Booleans в цифрах

Глобальный метод Number() также может конвертировать Булев номерам.

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

Преобразование дат в цифрах

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

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

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

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

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

Когда 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, чтобы число, строка и логическое значение:

оригинал
Стоимость
переделанный
к номеру
переделанный
нанизывать
переделанный
в логическое значение
Попробуй
false0"false"false Попробуй "
true1"true"true Попробуй "
00"0"false Попробуй "
11"1"true Попробуй "
"0"0"0"true Попробуй "
"1"1"1"true Попробуй "
NaNNaN"NaN"false Попробуй "
InfinityInfinity"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 Попробуй "
null0"null"false Попробуй "
undefinedNaN"undefined"false Попробуй "

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

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