Operatorer i JavaScript
I denne artikel vil vi forklare operatorer i JavaScript.
YouTube Video
Operatorer i JavaScript
Operatorer i JavaScript er symboler eller nøgleord, der bruges til at udføre beregninger eller sammenligninger på tal og variabler. Der er forskellige typer operatorer, der hver især udfører forskellige operationer. Her er en oversigt over nogle af de vigtigste operatorer:.
Aritmetiske Operatorer
JavaScript's aritmetiske operatorer inkluderer følgende:.
Operator | Beskrivelse | Eksempel | Resultat |
---|---|---|---|
+ |
Addition | 5 + 2 |
7 |
- |
Subtraktion | 5 - 2 |
3 |
* |
Multiplikation | 5 * 2 |
10 |
/ |
Division | 5 / 2 |
2.5 |
% |
Modulus (Restværdi) | 5 % 2 |
1 |
++ |
Inkrement (Forøg med 1) | let x = 5; x++ |
6 |
-- |
Dekrement (Reducer med 1) | let x = 5; x-- |
4 |
1let a = 10; // Initialize variable 'a' with the value 10
2let b = 3; // Initialize variable 'b' with the value 3
3
4// Perform and display arithmetic operations between 'a' and 'b'
5console.log("Addition (a + b): ", a + b); // 13
6console.log("Subtraction (a - b): ", a - b); // 7
7console.log("Multiplication (a * b):", a * b); // 30
8console.log("Division (a / b): ", a / b); // 3.333...
9console.log("Modulus (a % b): ", a % b); // 1
10
11// Demonstrate post-increment operation on 'a'
12// Output the current value of 'a' (10), then increment
13console.log("Post-increment (a++): ", a++);
14// Display the incremented value of 'a' (11)
15console.log("Value of 'a' after increment:", a);
16
17// Demonstrate pre-increment operation on 'a'
18// Increment 'a' first (12) then output
19console.log("Pre-increment (++a): ", ++a);
20
21// Demonstrate post-decrement operation on 'a'
22// Output the current value of 'a' (12), then decrement
23console.log("Post-decrement (a--): ", a--);
24// Display the decremented value of 'a' (11)
25console.log("Value of 'a' after decrement:", a);
26
27// Demonstrate pre-decrement operation on 'a'
28// Decrement 'a' first (10) then output
29console.log("Pre-decrement (--a): ", --a);
Aritmetiske operatorer udfører grundlæggende matematiske operationer på tal. Udover addition og subtraktion kan du udføre operationer som modulus, inkrement og dekrement. Bemærk, at værdien returneret af inkrement eller dekrement varierer afhængigt af, om operatoren er placeret før eller efter operanden.
Tildelingsoperatorer
JavaScript's tildelingsoperatorer inkluderer følgende:.
Operator | Beskrivelse | Eksempel | Resultat |
---|---|---|---|
= |
Tildeling | x = 5 |
x tildeles værdien 5 |
+= |
Additionstildeling | x += 5 |
x = x + 5 |
-= |
Subtraktionstildeling | x -= 5 |
x = x - 5 |
*= |
Multiplikationstildeling | x *= 5 |
x = x * 5 |
/= |
Divisionstildeling | x /= 5 |
x = x / 5 |
%= |
Modulus-tilordning | x %= 5 |
x = x % 5 |
1let x = 10;
2
3x += 5; // x = x + 5, so x becomes 15
4console.log('After x += 5 : ', x); // 15
5
6x -= 10;
7console.log('After x -= 10 : ', x); // 5
8
9x *= 3;
10console.log('After x *= 3 : ', x); // 15
11
12x /= 3;
13console.log('After x /= 3 : ', x); // 5
14
15x %= 2;
16console.log('After x %= 2 : ', x); // 1
Tilordningsoperatorer bruges til at tildele værdier til variabler eller opdatere variablernes værdier. Ud over almindelig tilordning findes der tilordningsoperatorer til aritmetiske operationer som addition og modulus.
Sammenligningsoperatorer
JavaScript's sammenligningsoperatorer inkluderer følgende:.
Operator | Beskrivelse | Eksempel | Resultat |
---|---|---|---|
== |
Lig med | 5 == "5" |
true |
=== |
Strengt lig med (Både type og værdi er ens) | 5 === "5" |
false |
!= |
Ikke lig med | 5 != "5" |
false |
!== |
Strengt ikke lig med | 5 !== "5" |
true |
> |
Større end | 5 > 2 |
true |
< |
Mindre end | 5 < 2 |
false |
>= |
Større end eller lig med | 5 >= 5 |
true |
<= |
Mindre end eller lig med | 5 <= 4 |
false |
1console.log("5 == '5' evaluates to:", 5 == "5"); // true (because the values are equal)
2console.log("5 === '5' evaluates to:", 5 === "5"); // false (because the types are different)
3console.log("5 != '5' evaluates to:", 5 != "5"); // false
4console.log("5 !== '5' evaluates to:", 5 !== "5"); // true
5console.log("5 > 2 evaluates to:", 5 > 2); // true
6console.log("5 < 2 evaluates to:", 5 < 2); // false
7console.log("5 >= 5 evaluates to:", 5 >= 5); // true
8console.log("5 <= 4 evaluates to:", 5 <= 4); // false
9console.log("5 >= '5' evaluates to:", 5 >= "5"); // true
10console.log("5 <= '5' evaluates to:", 5 <= "5"); // true
- Sammenligningsoperatorer sammenligner værdier og returnerer enten sandt eller falsk.
- Lighedsoperatoren (
==
) konverterer automatisk forskellige typer, om nødvendigt, før sammenligningen udføres. Den strikte lighedsoperator (===
) udfører ingen typekonvertering under sammenligningen og returnerer kuntrue
, hvis begge værdier har samme type og samme værdi. Ved at bruge den strikte lighedsoperator (===
) kan man undgå fejl forårsaget af utilsigtet typekonvertering, så det anbefales at foretrække dens brug.
Logiske operatorer
JavaScript's logiske operatorer inkluderer følgende:.
Operator | Beskrivelse | Eksempel | Resultat |
---|---|---|---|
&& |
OG (Sandt hvis begge betingelser er opfyldt) | true && false |
false |
|| |
ELLER (Sandt hvis mindst én betingelse er opfyldt) | true || false |
true |
! |
IKKE (Ændrer sandt til falsk og falsk til sandt) | !true |
false |
1let a = true;
2let b = false;
3
4console.log("a && b evaluates to:", a && b); // false
5console.log("a || b evaluates to:", a || b); // true
6console.log("!a evaluates to:", !a); // false
Logiske operatorer bruges, når der er flere betingelser, til at evaluere kombinationer af betingelser.
Prioritet for logiske operatorer
I JavaScript evalueres logiske operatorer generelt i rækkefølgen NOT
først, efterfulgt af AND
og til sidst OR
.
NOT
har den højeste prioritet
NOT
er en unær operator og evalueres med den højeste prioritet.
1console.log(!true || false); // false
AND
har højere prioritet end OR
AND
har højere prioritet end OR
, så AND
-delen evalueres først.
1console.log(true || false && false); // true
På denne måde evalueres AND
(&&
)-delen først, og dens resultat sendes videre til OR
(||
).
AND
og OR
udfører kortslutningsevaluering
JavaScript's AND
og OR
udfører kortslutningsevaluering. Hvis resultatet kan bestemmes af venstresidens værdi, evalueres højresidens udtryk ikke.
1let a = false && console.log("This will not be printed");
2console.log(a); // false
3
4let b = true || console.log("This will not be printed");
5console.log(b); // true
I begge tilfælde vil console.log()
ikke blive udført.
Etabler eksplicit prioritet
Ved eksplicit at gruppere udtryk med parenteser kan du forhindre misforståelser om prioritet.
1console.log(true || (false && false)); // true
Forskelle mellem naturligt sprog og programfortolkning
Når du bruger logiske operatorer, er det vigtigt at være opmærksom på tvetydigheder i naturligt sprog. For eksempel, når man siger 'hvid hund eller kat', kan det betyde enten 'en hvid hund eller en kat af enhver farve' eller 'en hvid hund eller en hvid kat.'. I kode ville det se sådan ud:.
1if (isWhite && isDog || isCat) {
2 console.log(' "A white dog" or "a cat of any color" ');
3}
4
5if (isWhite && (isDog || isCat)) {
6 console.log(' "A white dog" or "a white cat" ');
7}
8
9console.log(true || (false && false)); // true
Da naturligt sprog indeholder tvetydigheder som denne, skal man være forsigtig, når man koder eller designer.
Ternær Operator (Betinget Operator)
JavaScript inkluderer en ternær operator (betinget operator).
Operator | Beskrivelse | Eksempel | Resultat |
---|---|---|---|
? : |
Hvis betingelsen er sand, udføres venstre side, ellers udføres højre side | betingelse ? hvis sandt : hvis falsk |
Resultat baseret på betingelsen |
1let age = 20;
2let message = age >= 18 ? "Adult" : "Minor";
3console.log(message); // "Adult"
Det skrives i formen betingelse ? værdi hvis sandt : værdi hvis falsk
.
Bitvise Operatorer
JavaScript bitvise operatorer omfatter følgende.
Operator | Beskrivelse | Eksempel | Resultat |
---|---|---|---|
& |
AND | 5 & 1 |
1 |
| |
OR | 5 | 1 |
5 |
^ |
XOR | 5 ^ 1 |
4 |
~ |
NOT | ~5 |
-6 |
<< |
Venstre Skift | 5 << 1 |
10 |
>> |
Højre skift | 5 >> 1 |
2 |
1let x = 0x0F & 0x0C;
2console.log("0x0F & 0x0C evaluates to:", x, "(0x0C, 12)"); // 0x0C (12)
3
4x = 0x04 | 0x02;
5console.log("0x04 | 0x02 evaluates to:", x, "(0x06, 6)"); // 0x06 (6)
6
7x = 0x0F ^ 0x0C;
8console.log("0x0F ^ 0x0C evaluates to:", x, "(0x03, 3)"); // 0x03 (3)
9
10// The inverted number is represented as a negative value
11// because JavaScript numbers are stored as signed 32-bit integers.
12x = ~0x0C;
13console.log("~0x0C evaluates to:", x, "(-13, 0xF3)"); // 0xF3 (-13)
14
15x = 0x04 << 1;
16console.log("0x04 << 1 evaluates to:", x, "(0x08, 8)"); // 0x08 (8)
17x = 0x04 >> 1;
18console.log("0x04 >> 1 evaluates to:", x, "(0x02, 2)"); // 0x02 (2)
Bitoperatører udfører beregninger på tal på bitniveau. De bruges normalt til lavniveau-behandling.
Typeoperatører
JavaScript typeoperatorer omfatter følgende.
Operator | Beskrivelse | Eksempel | Resultat |
---|---|---|---|
typeof |
Returnerer typen af en variabel | typeof 123 |
"number" |
instanceof |
Tjekker, om et objekt tilhører en specifik klasse | arr instanceof Array |
true |
1console.log(typeof "Hello"); // "string"
2console.log(typeof 42); // "number"
3
4let arr = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true
Typeoperatører bruges til at kontrollere typen af en værdi eller konvertere den til en bestemt type.
typeof
-operatoren returnerer typen af en variabel.
instanceof
-operatoren kontrollerer, om et objekt tilhører en specifik klasse.
Sammendrag
- Aritmetiske operatører udfører grundlæggende beregninger.
- Tildelingsoperatører tildeler eller opdaterer værdier i variabler.
- Sammenligningsoperatører sammenligner to værdier og returnerer sandt eller falsk.
- Logiske operatører evaluerer kombinationer af betingelser.
- Ternære operatører gør det muligt at skrive betingede udtryk i en kortere form end
if
. - Bitvise operatører udfører beregninger på bitniveau.
- Typeoperatører giver mulighed for at kontrollere typen af en værdi.
Du kan følge med i ovenstående artikel ved hjælp af Visual Studio Code på vores YouTube-kanal. Husk også at tjekke YouTube-kanalen.