Konwersja typu JavaScript
- Konwersja ciągów na liczby
- Konwersja liczb na ciągi
- Konwersja dat na liczby
- Konwersja liczb na daty
- Zamiana wartości logicznych na liczby
- Konwersja liczb na wartości logiczne
Konwersja typu JavaScript
Zmienne JavaScript można przekonwertować na nową zmienną i inny typ danych:
- Za pomocą funkcji JavaScript
- Automatycznie przez sam JavaScript
Konwersja ciągów na liczby
Metoda globalna Number()
może konwertować łańcuchy na liczby.
Ciągi zawierające liczby (np. „3.14”) są konwertowane na liczby (np. 3.14).
Puste ciągi są konwertowane na 0.
Wszystko inne zamienia się na NaN
(nie jest liczbą).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
Metody liczbowe
W rozdziale Metody liczbowe znajdziesz więcej metod, których można użyć do konwersji łańcuchów na liczby:
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 |
Jednoargumentowy + Operator
Operator jednoargumentowy + może służyć do konwersji zmiennej na liczbę:
Przykład
let y = "5";
// y is a string
let x = + y;
// x is a number
Jeśli zmienna nie może zostać przekonwertowana, nadal stanie się liczbą, ale z wartością NaN
(Not a Number):
Przykład
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
Konwersja liczb na ciągi
Metoda globalna String()
może konwertować liczby na łańcuchy.
Może być używany do dowolnego typu liczb, literałów, zmiennych lub wyrażeń:
Przykład
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
Metoda Number toString()
robi to samo.
Przykład
x.toString()
(123).toString()
(100 + 23).toString()
Więcej metod
W rozdziale Metody liczbowe znajdziesz więcej metod, których można użyć do konwersji liczb na łańcuchy:
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 |
Konwersja dat na liczby
Number()
Do konwersji dat na liczby można użyć metody globalnej .
d = new Date();
Number(d) // returns 1404568027739
Metoda daty getTime()
robi to samo.
d = new Date();
d.getTime() // returns 1404568027739
Konwersja dat na ciągi
Metoda globalna String()
może konwertować daty na ciągi znaków.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Metoda Date toString()
robi to samo.
Przykład
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
W rozdziale Metody dat znajdziesz więcej metod, których można użyć do konwersji dat na ciągi znaków:
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) |
Zamiana wartości logicznych na liczby
Metoda globalna Number()
może również konwertować wartości logiczne na liczby.
Number(false) // returns 0
Number(true) // returns 1
Konwersja wartości logicznych na ciągi
Metoda globalna String()
może konwertować wartości logiczne na łańcuchy.
String(false) // returns "false"
String(true) // returns "true"
Metoda Boolean toString()
robi to samo.
false.toString() // returns "false"
true.toString() // returns "true"
Automatyczna konwersja typów
Kiedy JavaScript próbuje operować na „niewłaściwym” typie danych, spróbuje przekonwertować wartość na „właściwy” typ.
Wynik nie zawsze jest taki, jakiego oczekujesz:
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
Automatyczna konwersja ciągów
JavaScript automatycznie wywołuje funkcję zmiennej, toString()
gdy próbujesz „wyprowadzić” obiekt lub zmienną:
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"
Liczby i wartości logiczne są również konwertowane, ale nie jest to zbyt widoczne:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Tabela konwersji typów JavaScript
Ta tabela pokazuje wyniki konwersji różnych wartości JavaScript na Number, String i Boolean:
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 |
Wartości w cudzysłowie wskazują wartości ciągu.
Czerwone wartości oznaczają wartości, których (niektórzy) programiści mogą się nie spodziewać.