Konvertering af strenge til tal
Konvertering af tal til strenge
Konvertering af datoer til tal
Konvertering af tal til datoer
Konvertering af Boolean til tal
Konvertering af tal til booleaner
JavaScript-variabler kan konverteres til en ny variabel og en anden datatype:
Ved brug af en JavaScript-funktion
Automatisk af JavaScript selv
Den globale metode Number()
konverterer en variabel (eller en værdi) til et tal.
En numerisk streng (som "3.14") konverteres til et tal (som 3.14).
En tom streng (som "") konverteres til 0.
En ikke-numerisk streng (som "John") konverteres til NaN
(ikke et tal).
Disse vil konvertere:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
Disse vil ikke konvertere:
Number("99 88")
Number("John")
Prøv det selv →
<!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>
I kapitlet Nummermetoder kan du vil finde flere metoder, der kan bruges til at konvertere strenge til tal:
Beskrivelse
Returnerer et tal, konverteret fra dets argument
Parser en streng og returnerer et flydende kommatal
Parser en streng og returnerer et heltal
Operatoren unary + kan bruges til konverter en variabel til et tal:
let y = "5";
// y is a string
let x = + y;
// x is a number
Prøv det selv →
<!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>
Hvis variabel kan ikke konverteres, den bliver stadig et tal, men med værdien NaN
(Ikke et nummer):
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
Prøv det selv →
<!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>
Den globale metode String()
kan konvertere tal til strenge.
Det kan bruges på enhver type tal, bogstaver, variabler eller udtryk:
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
Prøv det selv →
<!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>
Talmetoden toString()
gør det samme.
x.toString()
(123).toString()
(100 + 23).toString()
Prøv det selv →
<!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>
I kapitlet Nummermetoder kan du vil finde flere metoder, der kan bruges til at konvertere tal til strenge:
Returnerer en streng med et tal afrundet og skrevet med eksponentiel notation.
Returnerer en streng med et tal afrundet og skrevet med et angivet antal decimaler.
Returnerer en streng med et tal skrevet med en specificeret længde
Den globale metode Number()
kan bruges til at konvertere datoer til tal.
d = new Date();
Number(d) // returns 1404568027739
Datometoden getTime()
gør det samme.
d = new Date();
d.getTime() // returns 1404568027739
Den globale metode String()
kan konvertere datoer til strenge.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
Datometoden toString()
gør det samme.
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
I kapitlet Datometoder kan du vil finde flere metoder, der kan bruges til at konvertere datoer til strenge:
Få dagen som et tal (1-31)
Få ugedagen et tal (0-6)
Få det firecifrede årstal (åååå)
Få timen (0-23)
Få millisekunderne (0-999)
Få minutterne (0-59)
Få måneden (0-11)
Få sekunderne (0-59)
Få tiden (millisekunder siden 1. januar 1970)
Den globale metode Number()
kan også konvertere booleaner til tal.
Number(false) // returns 0
Number(true) // returns 1
Den globale metode String()
kan konvertere booleaner til strenge.
String(false) // returns "false"
String(true) // returns "true"
Den boolske metode toString()
gør det samme.
false.toString() // returns "false"
true.toString() // returns "true"
Når JavaScript forsøger at operere på en "forkert" datatype, vil den forsøge det konverter værdien til en "rigtig" type.
Resultatet er ikke altid, hvad du forventer:
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
Prøv det selv →
<!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 kalder automatisk variablens toString()
-funktion, når du prøver at "outputte" et objekt eller en variabel:
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"
Tal og booleaner konverteres også, men dette er ikke særlig synligt:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Denne tabel viser resultatet af konvertering af forskellige JavaScript-værdier til Number, String og Boolean:
Oprindelig værdi:
false
Konverteret til nummer:
0
Konverteret til streng:
"false"
Konverteret til Boolean:
false
Prøv det →
<!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>
Oprindelig værdi:
true
Konverteret til nummer:
1
Konverteret til streng:
"true"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
0
Konverteret til nummer:
0
Konverteret til streng:
"0"
Konverteret til Boolean:
false
Prøv det →
<!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>
Oprindelig værdi:
1
Konverteret til nummer:
1
Konverteret til streng:
"1"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
"0"
Konverteret til nummer:
0
Konverteret til streng:
"0"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
"000"
Konverteret til nummer:
0
Konverteret til streng:
"000"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
"1"
Konverteret til nummer:
1
Konverteret til streng:
"1"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
NaN
Konverteret til nummer:
NaN
Konverteret til streng:
"NaN"
Konverteret til Boolean:
false
Prøv det →
<!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>
Oprindelig værdi:
Infinity
Konverteret til nummer:
Infinity
Konverteret til streng:
"Infinity"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
-Infinity
Konverteret til nummer:
-Infinity
Konverteret til streng:
"-Infinity"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
""
Konverteret til nummer:
0
Konverteret til streng:
""
Konverteret til Boolean:
false
Prøv det →
<!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>
Oprindelig værdi:
"20"
Konverteret til nummer:
20
Konverteret til streng:
"20"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
NaN
Konverteret til nummer:
"twenty"
Konverteret til streng:
"twenty"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
[ ]
Konverteret til nummer:
0
Konverteret til streng:
""
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
[20]
Konverteret til nummer:
20
Konverteret til streng:
"20"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
[10,20]
Konverteret til nummer:
NaN
Konverteret til streng:
"10,20"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
["twenty"]
Konverteret til nummer:
NaN
Konverteret til streng:
"twenty"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
["ten","twenty"]
Konverteret til nummer:
NaN
Konverteret til streng:
"ten,twenty"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
function(){}
Konverteret til nummer:
NaN
Konverteret til streng:
"function(){}"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
{ }
Konverteret til nummer:
NaN
Konverteret til streng:
"[object Object]"
Konverteret til Boolean:
true
Prøv det →
<!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>
Oprindelig værdi:
null
Konverteret til nummer:
0
Konverteret til streng:
"null"
Konverteret til Boolean:
false
Prøv det →
<!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>
Oprindelig værdi:
undefined
Konverteret til nummer:
NaN
Konverteret til streng:
"undefined"
Konverteret til Boolean:
false
Prøv det →
<!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>
Værdier i anførselstegn angiver strengværdier.
Røde værdier angiver værdier (nogle) programmører måske ikke forventer.