Převod řetězců na čísla
Převod čísel na řetězce
Převod dat na čísla
Převod čísel na data
Převod booleovských hodnot na čísla
Převod čísel na booleovské
Proměnné JavaScriptu lze převést na novou proměnnou a jiný datový typ:
Pomocí funkce JavaScript
Automaticky samotným JavaScriptem
Globální metoda Number()
převádí proměnnou (nebo hodnotu) na číslo.
Číselný řetězec (např. „3.14“) se převede na číslo (např. 3.14).
Prázdný řetězec (jako "") se převede na 0.
Nečíselný řetězec (jako "Jan") se převede na NaN
(není číslo).
Tyto převedou:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
Tyto nebudou převedeny:
Number("99 88")
Number("John")
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The Number() Method</h2>
<p>The Number() metod converts a variable (or value) into a number:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number("3.14") + "<br>" +
Number(Math.PI) + "<br>" +
Number(" ") + "<br>" +
Number("") + "<br>" +
Number("99 88") + "<br>" +
Number("John") + "<br>";
</script>
</body>
</html>
V kapitole Metody čísel jste najde více metod, které lze použít k převodu řetězců na čísla:
Popis
Vrátí číslo převedené z jeho argumentu
Zanalyzuje řetězec a vrátí číslo s plovoucí desetinnou čárkou
Zanalyzuje řetězec a vrátí celé číslo
Lze použít unární operátor + převést proměnnou na číslo:
let y = "5";
// y is a string
let x = + y;
// x is a number
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript typeof Operator</h2>
<p>The typeof operator returns the type of a variable or expression:</p>
<p id="demo"></p>
<script>
let y = "5";
let x = + y;
document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x;
</script>
</body>
</html>
Pokud proměnnou nelze převést, stále se z ní stane číslo, ale s hodnotou NaN
(Není číslo):
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript typeof Operator</h2>
<p>The typeof operator returns the type of a variable or expression:</p>
<p id="demo"></p>
<script>
let y = "John";
let x = + y;
document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x;
</script>
</body>
</html>
Globální metoda String()
může převádět čísla na řetězce.
Lze jej použít na jakýkoli typ čísel, literálů, proměnných nebo výrazů:
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
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript String() Method</h2>
<p>The String() method can convert a number to a string.</p>
<p id="demo"></p>
<script>
let x = 123;
document.getElementById("demo").innerHTML =
String(x) + "<br>" +
String(123) + "<br>" +
String(100 + 23);
</script>
</body>
</html>
Metoda Number toString()
dělá totéž.
x.toString()
(123).toString()
(100 + 23).toString()
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Number Methods</h2>
<p>The toString() method converts a number to a string.</p>
<p id="demo"></p>
<script>
let x = 123;
document.getElementById("demo").innerHTML =
x.toString() + "<br>" +
(123).toString() + "<br>" +
(100 + 23).toString();
</script>
</body>
</html>
V kapitole Metody čísel jste najde více metod, které lze použít k převodu čísel na řetězce:
Vrátí řetězec se zaokrouhleným číslem a zapsaným pomocí exponenciálního zápisu.
Vrátí řetězec se zaokrouhleným číslem a zapsaným na zadaný počet desetinných míst.
Vrátí řetězec s číslem zapsaným se zadanou délkou
Globální metodu Number()
lze použít k převodu dat na čísla.
d = new Date();
Number(d) // returns 1404568027739
Metoda data getTime()
dělá totéž.
d = new Date();
d.getTime() // returns 1404568027739
Globální metoda String()
dokáže převést data na struny.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Metoda Date toString()
dělá totéž.
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
V kapitole Metody data si najde více metod, které lze použít k převodu dat na řetězce:
Získejte den jako číslo (1-31)
Získejte číslo dne v týdnu (0-6)
Získejte čtyřmístný rok (yyyy)
Získejte hodinu (0-23)
Získejte milisekundy (0-999)
Získejte minuty (0-59)
Získejte měsíc (0-11)
Získejte sekundy (0-59)
Získejte čas (milisekundy od 1. ledna 1970)
Globální metoda Number()
může také převádět booleovské hodnoty na čísla.
Number(false) // returns 0
Number(true) // returns 1
Globální metoda String()
dokáže převést logické hodnoty na struny.
String(false) // returns "false"
String(true) // returns "true"
Booleovská metoda toString()
dělá totéž.
false.toString() // returns "false"
true.toString() // returns "true"
Když se JavaScript pokusí pracovat na "nesprávném" datovém typu, pokusí se o to převést hodnotu na typ "správný".
Výsledek není vždy takový, jaký očekáváte:
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
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
(5 + null) + "<br>" +
("5" + null) + "<br>" +
("5" + 2) + "<br>" +
("5" - 2) + "<br>" +
("5" * "2") + "<br>" +
("5" / "2") + "<br>"
</script>
</body>
</html>
JavaScript při pokusu automaticky volá funkci toString()
proměnné. k "výstupu" objektu nebo proměnné:
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"
Čísla a booleovské hodnoty jsou také převedeny, ale není to příliš viditelné:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Tato tabulka ukazuje výsledek převodu různých hodnot JavaScriptu na Number, String a Boolean:
Původní hodnota:
false
Převedeno na číslo:
0
Převedeno na řetězec:
"false"
Převedeno na logickou hodnotu:
false
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting false to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = false;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
true
Převedeno na číslo:
1
Převedeno na řetězec:
"true"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting true to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = true;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
0
Převedeno na číslo:
0
Převedeno na řetězec:
"0"
Převedeno na logickou hodnotu:
false
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the number 0 to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 0;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
1
Převedeno na číslo:
1
Převedeno na řetězec:
"1"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the number 1 to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 1;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
"0"
Převedeno na číslo:
0
Převedeno na řetězec:
"0"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "0" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "0";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
"000"
Převedeno na číslo:
0
Převedeno na řetězec:
"000"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "000" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "000";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
"1"
Převedeno na číslo:
1
Převedeno na řetězec:
"1"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "1" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 1;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
NaN
Převedeno na číslo:
NaN
Převedeno na řetězec:
"NaN"
Převedeno na logickou hodnotu:
false
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting NaN to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = NaN;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
Infinity
Převedeno na číslo:
Infinity
Převedeno na řetězec:
"Infinity"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting Infinity to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = Infinity;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
-Infinity
Převedeno na číslo:
-Infinity
Převedeno na řetězec:
"-Infinity"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting -Infinity to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = -Infinity;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
""
Převedeno na číslo:
0
Převedeno na řetězec:
""
Převedeno na logickou hodnotu:
false
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting an empty string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
"20"
Převedeno na číslo:
20
Převedeno na řetězec:
"20"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a numeric string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "20";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
NaN
Převedeno na číslo:
"twenty"
Převedeno na řetězec:
"twenty"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a text string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "twenty";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
[ ]
Převedeno na číslo:
0
Převedeno na řetězec:
""
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<p>Converting an empty array to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
[20]
Převedeno na číslo:
20
Převedeno na řetězec:
"20"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with one numeric element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [20];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
[10,20]
Převedeno na číslo:
NaN
Převedeno na řetězec:
"10,20"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with two numeric elements to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [10,20];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
["twenty"]
Převedeno na číslo:
NaN
Převedeno na řetězec:
"twenty"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with one string element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = ["twenty"];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
["ten","twenty"]
Převedeno na číslo:
NaN
Převedeno na řetězec:
"ten,twenty"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with two string element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = ["ten","twenty"];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
function(){}
Převedeno na číslo:
NaN
Převedeno na řetězec:
"function(){}"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a function to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
const x = function(){};
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
{ }
Převedeno na číslo:
NaN
Převedeno na řetězec:
"[object Object]"
Převedeno na logickou hodnotu:
true
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting an object to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
const x = {};
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
null
Převedeno na číslo:
0
Převedeno na řetězec:
"null"
Převedeno na logickou hodnotu:
false
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting null to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = null;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Původní hodnota:
undefined
Převedeno na číslo:
NaN
Převedeno na řetězec:
"undefined"
Převedeno na logickou hodnotu:
false
Zkuste to →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting undefined to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = undefined;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Hodnoty v uvozovkách označují hodnoty řetězce.
Červené hodnoty označují hodnoty, které (někteří) programátoři neočekávají.