{ "cells": [ { "cell_type": "markdown", "id": "f005ac12-f7b6-44ed-99bd-def52028b315", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Wahrheitswerte\n", "Der dritte wichtige Datentyp neben `string` und `number` sind Wahrheitswerte. Sie werden auch boolesche Werte genannt. Boolesche Werte kennen nur zwei Zustände: `true` und `false`.\n", "\n", "Mit booleschen Werten kann man ähnlich \"rechnen\" wie mit Zahlen. JavaScript kennt drei boolesche Operatoren:\n", "* `&&` (und)\n", " * `&&` verknüpft zwei boolesche Werte. Sind beide Werte `true`, ist das Ergebnis auch `true`. In allen anderen Fällen ist es `false`.\n", "* `||` (oder)\n", " * Bei `||` ist das Ergebnis `false`, wenn beide Eingangswerte auch `false` sind. In allen anderen Fällen ist das Ergebnis `true`.\n", "* `!` (nicht)\n", " * `!` wird nur auf einen booleschen Wert angewendet und invertiert diesen Wert: aus `true` wird `false` und aus `false` wird `true`.\n", " \n", "```\n", "let x1 = true && false;\n", "let x2 = !x1;\n", "let x3 = x1 || x2;\n", "```\n", "\n", "* `x1` ist `false`\n", "* `x2` ist `true`\n", "* `x3` ist `true`\n", "\n", "*Anmerkung: `x1`, `x2` und `x3` sind damit automatisch vom Datentyp `boolean`, ohne dass dies explizit angegeben werden muss.*" ] }, { "cell_type": "code", "execution_count": 1, "id": "8c60bf4a-7f20-46d3-be56-96228d5dd0c6", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "false\n", "false\n", "true\n" ] } ], "source": [ "console.log( true && false ); // Ausgabe: false\n", "console.log( !true ); // Ausgabe: false\n", "console.log( true || false ); // Ausgabe: true" ] }, { "cell_type": "markdown", "id": "d8a82694-693a-44a3-9c0d-383531b19036", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Vergleiche\n", "Zahlen kann man mit den aus der Mathematik bekannten Zeichen `>`, `>=`, `<` und `<=` auf größer, größer gleich, kleiner und kleiner gleich vergleichen. Im folgenden Beispiel liefern alle Ausdrücke den Wert `true`:\n", "```\n", "let v1 = 5 > 4;\n", "let v2 = 5 >= 5;\n", "let v3 = 5 < 6;\n", "let v4 = 5 <= 5;\n", "```\n", "\n", "Zwei Werte kann man auch auf strikte Gleichheit überprüfen. Das Ergebnis eines solchen Vergleichs ist entweder `true`, die beiden Werte sind gleich, oder `false`, die beiden Werte sind ungleich. Der Operator für strikte Gleichheit ist `===`.\n", "\n", "Im Gegensatz dazu gibt es auch den aus anderen Programmiersprachen bekannten Operator `==`. Dieser liefert ebenfalls `true` z.B. wenn die Datentypen unterschiedlich sind, jedoch der Inhalt gleich ist:\n", "```\n", "let v5 = 1 === 1; // liefert `true`\n", "let v6 = 1 === '1'; // liefert `false`, da die Datentypen unterschiedlich sind\n", "let v7 = 1 == '1'; // liefert `true`, da bei Typumwandlung der Inhalt gleich ist\n", "```" ] }, { "cell_type": "code", "execution_count": 3, "id": "972f23b8-0a4d-4b70-953a-883949688896", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "true\n", "true\n", "false\n", "true\n" ] } ], "source": [ "console.log( 5 > 4 ) // Ausgabe: true\n", "console.log( 5 >= 5 ) // Ausgabe: true\n", "console.log( 1 === '1' ) // Ausgabe: false\n", "console.log( 1 == '1' ) // Ausgabe: true" ] }, { "cell_type": "markdown", "id": "bb9081df-6937-4709-b477-4c7fbbb6512c", "metadata": { "editable": false, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Regel für den Unterricht\n", "**In aller Regel verwenden wir im Unterricht die strikte Gleichheit `===`**" ] } ], "metadata": { "kernelspec": { "display_name": "Deno", "language": "typescript", "name": "deno" }, "language_info": { "codemirror_mode": "typescript", "file_extension": ".ts", "mimetype": "text/x.typescript", "name": "typescript", "nbconvert_exporter": "script", "pygments_lexer": "typescript", "version": "5.8.3" } }, "nbformat": 4, "nbformat_minor": 5 }