JavaScript Booleans


Innehållsförteckning

    Visa innehållsförteckning

En JavaScript Boolean representerar ett av två värden: true eller falskt.

Booleska värden

Mycket ofta, i programmering, behöver du en datatyp som bara kan ha en av två värden, som

  • JA NEJ

  • PÅ AV

  • SANT FALSKT

För detta har JavaScript en Boolesk datatyp. Det kan bara ta värdena true eller false.


Funktionen Boolean()

Du kan använda funktionen Boolean() för att ta reda på om ett uttryck (eller en variabel) är Sann:

Exempel

Boolean(10 > 9)

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the value of Boolean(10 &gt; 9):</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = Boolean(10 > 9);
</script>

</body>
</html>

Eller ännu enklare:

Exempel

(10 > 9)
10 > 9

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the value of 10 &gt; 9:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 10 > 9;
</script>

</body>
</html>

Jämförelser och villkor

Kapitlet JS-jämförelser ger en fullständig översikt över jämförelseoperatorer.

Kapitlet JS Villkor ger en fullständig översikt över villkorliga uttalanden.

Här är några exempel:

==

Beskrivning: lika med

Exempel:

if (day == "Monday")

>

Beskrivning: större än

Exempel:

if (salary > 9000)

<

Beskrivning: mindre än

Exempel:

if (age < 18)

Det booleska värdet för ett uttryck är grunden för alla JavaScript-jämförelser och villkor.



Allt med ett "värde" är sant

Exempel

100

3.14

-15

"Hello"

"false"

7 + 1 + 3.14

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
"100 is " + Boolean(100) + "<br>" +
"3.14 is " + Boolean(3.14) + "<br>" +
"-15 is " + Boolean(-15) + "<br>" +
"Any (not empty) string is " + Boolean("Hello") + "<br>" +
"Even the string 'false' is " + Boolean('false') + "<br>" +
"Any expression (except zero) is " + Boolean(1 + 7 + 3.14);
</script>

</body>
</html>

Allt utan ett "värde" är falskt

Det booleska värdet 0 (noll) är false:

let x = 0;
Boolean(x);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the Boolean value of 0:</p>

<p id="demo"></p>

<script>
let x = 0;
document.getElementById("demo").innerHTML = Boolean(x);
</script>

</body>
</html>

Det booleska värdet -0 (minus noll) är falskt:

let x = -0;
Boolean(x);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the Boolean value of  -0:</p>

<p id="demo"></p>

<script>
let x = -0;
document.getElementById("demo").innerHTML = Boolean(x);
</script>

</body>
</html>

Det booleska värdet för "" (tom sträng) är false:

let x = "";
Boolean(x);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the Boolean value of "":</p>

<p id="demo"></p>

<script>
let x = "";
document.getElementById("demo").innerHTML = Boolean("");
</script>

</body>
</html>

Det booleska värdet för undefined är false:

let x;
Boolean(x);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the Boolean value of undefined:</p>

<p id="demo"></p>

<script>
let x;
document.getElementById("demo").innerHTML = Boolean(x);
</script>

</body>
</html>

Det booleska värdet för null är false:

let x = null;
Boolean(x);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the Boolean value of null:</p>

<p id="demo"></p>

<script>
let x = null;
document.getElementById("demo").innerHTML = Boolean(x);
</script>

</body>
</html>

Det booleska värdet för false är (du gissade rätt) false:

let x = false;
Boolean(x);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the Boolean value of false:</p>

<p id="demo"></p>

<script>
let x = false;
document.getElementById("demo").innerHTML = Boolean(x);
</script>

</body>
</html>

Det booleska värdet för NaN är false:

let x = 10 / "Hallo";
Boolean(x);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Display the Boolean value of NaN:</p>

<p id="demo"></p>

<script>
let x = 10 / "Hello";
document.getElementById("demo").innerHTML = Boolean(x);
</script>

</body>
</html>

JavaScript Booleans som objekt

Normalt sett är JavaScript-booleaner primitiva värden skapade av bokstavliga ord:

let x = false;

Men booleaner kan också definieras som objekt med nyckelordet new:

let y = new Boolean(false);

Exempel

let x = false;
let y = new Boolean(false);

 //
typeof x returns boolean
 //
typeof y returns object

Skapa inte booleska objekt.

Nyckelordet nya komplicerar koden och saktar ner körningshastigheten.

Booleska objekt kan ge oväntade resultat:

När du använder operatorn == är x och y lika:

let x = false;
let y = new Boolean(false);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Booleans and Boolean objects cannot be safely compared:</p>

<p id="demo"></p>

<script>
let x = false;         // x is a boolean
let y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>

</body>
</html>

När du använder operatorn === är x och y inte lika:

let x = false;
let y = new Boolean(false);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Booleans and Boolean objects cannot be safely compared:</p>

<p id="demo"></p>

<script>
let x = false;         // x is a Boolean
let y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = (x===y);
</script>

</body>
</html>

Notera skillnaden mellan (x==y) och (x===y).

(x == y) sant eller falskt?

let x = new Boolean(false);
let y = new Boolean(false);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Booleans and Boolean objects cannot be safely compared.</p>

<p id="demo"></p>

<script>
const x = new Boolean(false);
const y = new Boolean(false);
document.getElementById("demo").innerHTML = (x==y);
</script>

</body>
</html>

(x === y) sant eller falskt?

let x = new Boolean(false);
let y = new Boolean(false);

Prova själv →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Booleans</h1>
<p>Booleans and Boolean objects cannot be safely compared.</p>

<p id="demo"></p>

<script>
const x = new Boolean(false);
const y = new Boolean(false);
document.getElementById("demo").innerHTML = (x===y);
</script>

</body>
</html>

Att jämföra två JavaScript-objekt returnerar alltid falskt.

Komplett boolesk referens

För en fullständig referens, gå till vår Komplett JavaScript Boolean Referens.

Referensen innehåller beskrivningar och exempel på alla booleska egenskaper och metoder.