Konwersja typów w JavaScript
- Poprzednia strona JS typeof
- Następna strona Dekstruktura JS
Number()
konwersja liczb,String()
konwersja ciągów znaków,Boolean()
konwersja wartości logicznych.
Typy danych JavaScript
W JavaScript istnieją pięć typów danych, które mogą zawierać wartości:
- ciąg znaków (string)
- liczba (number)
- logiczny (boolean)
- obiekt (object)
- funkcja (function)
Istnieją trzy typy obiektów:
- obiekt (Object)
- data (Date)
- tablica (Array)
Również istnieją dwa typy danych, które nie mogą zawierać wartości:
- null
- undefined
operator typeof
Możesz użyć typeof
operator do określenia typu danych zmiennej w JavaScript.
przykład
typeof "Bill" // zwraca "string" typeof 3.14 // zwraca "number" typeof NaN // zwraca "number" typeof false // Zwraca "boolean" typeof [1,2,3,4] // Zwraca "object" typeof {name:'Bill', age:62} // Zwraca "object" typeof new Date() // Zwraca "object" typeof function () {} // Zwraca "function" typeof myCar // Zwraca "undefined" * typeof null // Zwraca "object"
Uwaga:
- Typ danych NaN to liczba
- Typ danych tablicy to obiekt
- Typ danych daty to obiekt
- Typ danych null to obiekt
- Typ danych nieprzypisanej zmiennej jest undefined
- Typ danych zmiennej, która nie została przypisana, jest również undefined
Nie możesz użyć typeof
do sprawdzenia, czy obiekt JavaScript jest tablicą (lub datą).
Typ danych typeof
typeof
Operator nie jest zmienną. Należy do operatorów. Operator (np. +
-
*
/
) brak typu danych.
ale,typeof
zawsze będzieZwraca ciąg znakówzawiera typy operandów.
Atrybut constructor
constructor
Właściwość zwraca funkcję konstruktora wszystkich zmiennych JavaScript.
przykład
function String() { [native code] } function Number() { [native code] } function Boolean() { [native code] } function Array() { [native code] } function Object() { [native code] } new Date().constructor // Zwraca "function Date() { [native code] }" function () {}.constructor // Zwraca "function Function(){ [native code] }"
Możesz sprawdzić constructor
Atrybut do określenia, czy dany obiekt jest tablicą (zawiera słowo "Array"):
przykład
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
Lub bardziej prosto, możesz sprawdzić, czy obiekt jest funkcją tablicy:
przykład
function isArray(myArray) { return myArray.constructor === Array; }
Możesz sprawdzić constructor
Atrybut do określenia, czy dany obiekt jest obiektem daty (zawiera słowo "Date"):
przykład
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
Lub bardziej prosto, możesz sprawdzić, czy obiekt jest funkcją daty:
przykład
function isDate(myDate) { return myDate.constructor === Date; }
Konwersja typów w JavaScript
Zmienne JavaScript mogą być przekształcane na nowe zmienne oraz inny typ danych:
- Przez użycie funkcji JavaScript
- Przez sam JavaScriptAutomatycznieKonwersja
Przekształcanie wartości liczbowych w ciągi znaków
Metoda globalna String()
Można przekształcić liczbę w ciąg znaków.
Można go użyć do dowolnego typu liczby, tekstu, zmiennej lub wyrażenia:
przykład
String(x) // Zwraca ciąg znaków z wartości liczbowej zmiennej x String(123) // Zwraca ciąg znaków z wartości liczbowej tekstowej 123 String(100 + 23) // Zwraca ciąg znaków z wartości liczbowej z wyrażenia
metody liczbowe toString()
Podobnie.
przykład
x.toString() (123).toString() (100 + 23).toString()
wmetody liczboweW tym rozdziale nauczysz się więcej metod, które można użyć do konwersji liczb na ciągi znaków:
metoda | opis |
---|---|
toExponential() | Zwraca ciąg znaków, który zaokrągla liczbę i zapisuje ją w formacie wykładniczym. |
toFixed() | Zwraca ciąg znaków, który zaokrągla liczbę i zapisuje ją z użyciem określonej liczby miejsc po przecinku. |
toPrecision() | Zwraca ciąg znaków, który zapisuje liczbę o określonej długości. |
Przekształć logiczne w ciąg znaków
Metoda globalna String()
można przekształcić logiczne w ciąg znaków.
String(false) // zwraca "false" String(true) // zwraca "true"
metody logiczne toString()
Podobnie.
false.toString() // zwraca "false" true.toString() // zwraca "true"
Przekształć datę w ciąg znaków
Metoda globalna String()
można przekształcić datę w ciąg znaków.
String(Date())
Metody daty toString()
Podobnie.
przykład
Date().toString()
wMetody datyW tym rozdziale znajdziesz więcej metod, które można użyć do przekształcenia daty w ciąg znaków:
metoda | opis |
---|---|
getDate() | uzyskaj dzień jako liczbę (1-31) |
getDay() | lub tygodnie liczone jako liczby (0-6) |
getFullYear() | uzyskaj czterocyfrowy rok (yyyy) |
getHours() | uzyskaj godzinę (0-23) |
getMilliseconds() | uzyskaj milisekundy (0-999) |
getMinutes() | uzyskaj minuty (0-59) |
getMonth() | uzyskaj miesiąc (0-11) |
getSeconds() | uzyskaj sekundy (0-59) |
getTime() | uzyskaj czas (milisekundy od 1 stycznia 1970 roku) |
Przekształć ciąg znaków w liczbę
Metoda globalna Number()
można przekształcić ciąg znaków w liczbę.
ciąg znaków zawierający liczby (np. "3.14") przekształca się w liczbę (np. 3.14).
pusty ciąg znaków przekształca się w 0。
Inne ciągi znaków będą przekształcane w NaN
(Nie liczba,nie liczba)。
Number("3.14") // zwraca 3.14 Number(" ") // zwraca 0 Number("") // zwraca 0 Number("99 88") // zwraca NaN
wmetody liczboweW tym rozdziale znajdziesz więcej metod, które można użyć do przekształcenia ciągu znaków w liczbę:
metoda | opis |
---|---|
parseFloat() | analizuje ciąg znaków i zwraca liczbę zmiennoprzecinkową. |
parseInt() | analizuje ciąg znaków i zwraca liczbę całkowitą. |
jednorodny operator +
jednorodny +
operatormożna użyć do przekształcenia zmiennej w liczbę:
przykład
var y = "5"; // y jest ciągami znaków var x = + y; // x jest liczbą
jeśli zmienna nie może być przekształcona, nadal będzie liczbą, ale wartość będzie NaN
(Nie liczba):
przykład
var y = "Bill"; // y jest ciągami znaków var x = + y; // x jest liczbą (NaN)
Przekształcanie booleana na liczbę
Metoda globalna Number()
Również można przekształcić boolean na liczbę.
Number(false) // zwraca 0 Number(true) // zwraca 1
Przekształcanie daty na liczbę
Metoda globalna Number()
Można użyć go do przekształcenia daty na liczbę.
d = new Date(); Number(d)
Metody daty getTime()
Podobnie.
d = new Date(); d.getTime()
Automatyczna konwersja typów
Jeśli JavaScript próbuje operować na rodzaju danych "błędny", próbuje przekształcić wartość na "poprawny" typ.
Wynik nie zawsze jest taki, jak się spodziewasz:
5 + null // zwraca 5 ponieważ null jest konwertowane na 0 "5" + null // zwraca "5null" ponieważ null jest konwertowane na "null" "5" + 2 // zwraca 52 ponieważ 2 jest konwertowane na "2" "5" - 2 // zwraca 3 ponieważ "5" jest konwertowane na 5 "5" * "2" // zwraca 10 ponieważ "5" i "2" są konwertowane na 5 i 2
konwersję na ciąg znaków
JavaScript automatycznie wywołuje konwersję toString()
Funkcja, gdy próbujesz "wypisać" obiekt lub zmienną:
document.getElementById("demo").innerHTML = myVar; // Jeśli myVar = {name:"Fjohn"} // toString konwertuje na "[object Object]" // Jeśli myVar = [1,2,3,4] // toString konwertuje na "1,2,3,4" // Jeśli myVar = new Date() // toString konwertuje na ""
Liczby i booleany również są konwertowane, ale nie jest to bardzo widoczne:
// Jeśli myVar = 123 // toString konwertuje na "123" // Jeśli myVar = true // toString konwertuje na "true" // Jeśli myVar = false // toString konwertuje na "false"
Tabela konwersji typów JavaScript
Poniższa tabela pokazuje wyniki konwersji różnych wartości JavaScript na liczby, ciągi znaków i wartości logiczne:
Wartość oryginalna | Konwersja na liczbę | Konwersja na ciąg znaków | Konwersja na logiczne | Spróbuj sam |
---|---|---|---|---|
false | 0 | "false" | false | Spróbuj sam |
true | 1 | "true" | true | Spróbuj sam |
0 | 0 | "0" | false | Spróbuj sam |
1 | 1 | "1" | true | Spróbuj sam |
"0" | 0 | "0" | true |
Spróbuj sam |
"000" | 0 | "000" | true |
Spróbuj sam |
"1" | 1 | "1" | true | Spróbuj sam |
NaN | NaN | "NaN" | false | Spróbuj sam |
Infinity | Infinity | "Infinity" | true | Spróbuj sam |
-Infinity | -Infinity | "-Infinity" | true | Spróbuj sam |
"" | 0 |
"" | false |
Spróbuj sam |
"20" | 20 | "20" | true | Spróbuj sam |
"twenty" | NaN | "twenty" | true | Spróbuj sam |
[ ] | 0 |
"" | true | Spróbuj sam |
[20] | 20 |
"20" | true | Spróbuj sam |
[10,20] | NaN | "10,20" | true | Spróbuj sam |
["twenty"] | NaN | "twenty" | true | Spróbuj sam |
["ten","twenty"] | NaN | "ten,twenty" | true | Spróbuj sam |
function(){} | NaN | "function(){}" | true | Spróbuj sam |
{ } | NaN | "[object Object]" | true | Spróbuj sam |
null | 0 |
"null" | false | Spróbuj sam |
undefined | NaN | "undefined" | false | Spróbuj sam |
Wartości w cudzysłowie wskazują wartości stringowe.
Czerwone wartościIndykuje wartości, które (certain) programiści mogą nie chcieć.
- Poprzednia strona JS typeof
- Następna strona Dekstruktura JS