TypeScript-Test/01 Einführung/03 Bedingungen/01 Wahrheitswerte.ipynb

161 lines
4.5 KiB
Plaintext

{
"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
}