JavaScript operatorer
En "operator" er et symbol, der bruges til at styre udførslen af en operation på en bestemt måde. I javaScript kan anvendes ca. 50 forskellige operatorer fordelt på følgende grupper:
![](/felles/ikoner/ned.gif) | Aritmetiske | Almindelig og speciel aritmetisk talbehandling. |
![](/felles/ikoner/ned.gif) | Sammenligningnende | Sammenligninger variablers værdier. Boolske. |
![](/felles/ikoner/ned.gif) | Logiske | Logiske sammenligninger. Boolske. |
![](/felles/ikoner/ned.gif) | Bitvise | Bitbaseret behandling ved sammenligning eller bitflytning. |
![](/felles/ikoner/ned.gif) | Assignment | Overførsel af værdi fra en variabel til en anden. |
![](/felles/ikoner/ned.gif) | Streng | Konkatenering af strenge |
![](/felles/ikoner/ned.gif) | Specielle | Specielle operatorer af meget forskellig art. |
Forrang
Operatorernes forrang - den rækkefølge, der anvendes ved evaluering af udtryk - (der kan overstyres ved anvendelse af parenteser), er:
- comma
,
- assignment
= += -= *= /= %= <<= >>= >>>= &= ^= |=
- conditional
?:
- logical-or
||
- logical-and
&&
- bitwise-or
|
- bitwise-xor
^
- bitwise-and
&
- equality
== !=
- relational
< < = > >=
- bitwise shift
<< >> >>>
- addition/subtraction
+ -
- multiply/divide
* / %
- negation/increment
! ~ - ++ --
- call, member
() []
Aritmetiske
Almindelig og speciel aritmetisk talbehandling. ![x](/felles/ikoner/rodfir.gif)
Addition | + | Almindelig addition.
v1 = v2 + 2 | |
Subtraktion | - | Almindelig subtraktion.
v1 = v2 -2 | |
Multiplikation | * | Almindelig subtraktion.
v1 = v2*2 | |
Division | / | Almindelig division.
v1 = v2/2 | |
Modulus | % | Beregning af modulus ( restværdi).
v1 = v2%2 | |
Forøgelse | ++ | Foranstillet forøgelse: v2 forøges med 1 før dens værdi overføres til v1.
v1 = ++v2 | |
Efterstillet forøgelse: v1 sættes = v2. v2 forøges efterfølgende med 1.
v1 = v2++ | |
Formindskelse | -- | Foranstillet formindskelse: v2 formindskes med 1 før dens værdi overføres til v1.
v1 = --v2 | |
Efterstillet formindskelse: v1 sættes = v2. v2 formindskes efterfølgende med 1.
v1 = v2-- | |
Sammenlignende
Sammenligninger mellem variablers værdi. Returnerer Boolske resultater: TRUE eller FALSE. ![x](/felles/ikoner/rodfir.gif)
Lig med | == | Returnerer true hvis operanterne er ens.
v1 == v2 | |
Ikke lig med | != | Returnerer true hvis operanterne ikke er ens.
v1 != v2 | |
Større end | > | Returnerer true hvis den venstre operant er større end den højre operant.
v1 > v2 | |
Større end eller lig med | >= | Returnerer true hvis den venstre operant er større end eller lig den højre.
v1 >= v2 | |
Mindre end | < | Returnerer true hvis den venstre operant er mindre end den højre operant.
va < v2 | |
Mindre end eller lig med | <= | Returnerer true hvis den venstre operant er mindre end eller lig den højre operant.
v1 <= v2 | |
Nøjagtigt lig med | === | Returnerer true hvis operanterness værdi og datatype er ens.
v1 === v2 | |
Ikke nøjagtigt lig med | !== | Returnerer true hvis operanternes værdi og / eller datatype er forskellig.
v1 !== v2 | |
Logiske
Logiske operatorer. Returnerer Boolske resultater: TRUE eller FALSE. ![x](/felles/ikoner/rodfir.gif)
Logisk AND | && | Returnerer true når både v1 og v2 er true. Ellers returneres false.
var resultat = v1 && v2 | |
Logisk OR | || | Returnerer true når v1 eller v2 er true. Er de begge false returneres false.
var resultat = v1 || v2 | |
Logisk NOT | ! | v1 vender sin værdi fra true til false eller fra false til true.
var resultat = !v1 | |
Bitvise
2 typer bit-operatorer. 1. Sammenligner de enkelte bits i variablerne. 2 Flytter bitsene sidelæns og udfylder de derved opståede tomme pladser. ![x](/felles/ikoner/rodfir.gif)
Sammenligning |
Bitwise AND | & | Returnerer bitvis 1 hvis både bit i v1 og v2 har værdien 1.
resultat = v1 & v2 | |
Bitwise OR | | | Returnerer bitvis 1 hvis enten bit i v1 eller v2 har værdien 1.
resultat = v1 | v2 . | |
Bitwise XOR | ^ | Returnerer bitvis 1 hvis enten bit i v1 eller v2, men ikke begge har værdien 1.
resultat = v1 ^ v2 . | |
Unary bitwise NOT | ~ 1 | De enkelte bitværdier (incl. fortegn) i v1 vendes fra 0 til 1 eller fra 1 til 0.
resultat = ~v1 | |
Flytning |
Venstre skift | << | Bitsene i v1 flyttes v2 pladser til venstre. De udskiftede bits slettes. Der indsættes 0-bits på de ledige pladser i højre side. | |
Højre skift | >> | Bitsene i v1 flyttes v2 pladser til højre. De udskiftede bits slettes. Bitten længst til venstre indsættes på de ledige pladser i venstre side.
resultat = v1 >> v2 . | |
Indsæt-nul højre skift | >>> | Bitsene i v1 flyttes v2 pladser til højre. De udskiftede bits slettes. Der indsættes 0-bits på de ledige pladser i venstre side.
resultat = v1 >>> v2 | |
Assignment
Værdien af variablen til venstre opdateres baseret på operatoren og dataene til højre for den.
Operatorerne (bortset fra '=') er 'shorthand' for hhv. standard aritmetiske operationer og for bitvise operationer. ![x](/felles/ikoner/rodfir.gif)
Aritmetisk |
Assignment | = | Almindeligt lighedstegn. Sætter variablen v1 = variablen v2. |
Aritmetisk addition | += | Variablen v1 sættes lig oprindelig v1-værdi + v2- værdi.
v1 += v2 betyder v1 = v1 + v2 |
Aritmetisk subtraction | -= | Variablen v1 sættes lig oprindelige v1-værdi - v2-værdi.
v1 -= v2 betyder v1 = v1 - v2 |
Aritmetisk multiplication | *= | Variablen v1 sættes lig oprindelig v1-værdi * v2-værdi.
v1 *= v2 betyder v1 = v1 * v2 |
Aritmetisk division | /= | Variablen v1 sættes lig oprindeling v1-værdi / v2-værdi.
v1 /= v2 betyder v1 = v1 / v2 |
Bitwise |
Bitvis left shift | <<= | Dataene i v1 flyttes v2 antal bits til venstre. Konverterer v1 fra at være flydende komma tal til at være 32 bit heltal
v1 <<= v2 betyder v1 = v1 << v2 |
Bitvis right shift | >>= | Dataene i v1 flyttes v2 antal bits til højre. Konverterer v1 fra at være et 32 bit heltal til at være et flydende komma tal.
v1 >>= v2 betyder v1 = v1 >> v2 |
Bitvis zero fill right shift | >>>= | Dataene i v1 flyttes v2 antal bits til højre. Konverterer v1 fra at være et flydende komma tal til at være et 32 bit heltal.
v1 >>>= betyder v1 = v1 >>> v2 |
Bitvis NOT |
| Konverterer v1 fra at være flydende komma tal til at være 32 bit heltal. Vender alle bits og returnerer værdien som et flydende komma tal. Gør tallet negativt og trækker 1 fra.
|
Bitvis AND | &= | Konverterer v1 og v2 fra at være flydende komma tal til at være 32 bit heltal. Sammenligner de 2 tal bit for bit og returnerer værdien 1 når bitten er 1 i både v1 og v2. Ellers returneres 0.
v1 &= v2 betyder v1 = v1 & v2 |
Bitvis XOR | ^= | Konverterer v1 og v2 fra at være flydende komma tal til at være 32 bit heltal. Sammenligner de 2 tal bit for bit og returnerer værdien 1 når bitten er forskellig i v1 og v2. Ellers returneres 0.
v1 ^= v2 betyder v1 = v1 ^ v2 |
Bitvis OR | | | Konverterer v1 og v2 fra at være flydende komma tal til at være 32 bit heltal. Sammenligner de 2 tal bit for bit og returnerer værdien 1 når bitten er 1 blot 1 af v1 og v2. Ellers returneres 0.
v1 |= v2 betyder v1 = v1 | v2 |
Streng
Sammenkædning af 2 strenge ved konkatenering. ![x](/felles/ikoner/rodfir.gif)
String concatenation | + | Konkatenering af variabler. | |
String concatenation | += | Kort form til konkatenering af variabler. | |
Specielle
Operatorer af vidt forskellig karakter.
Betinget operator | ? : | Kort version af if -sætning.
var mood = (smile==true) ? happy : sad . Hvis smile = true så er mood = happy ellers er mood = sad. | ![x](/felles/ikoner/rodfir.gif) |
Komma operator | , | Separator til brug i flere forskellige sammenhænge.
var k=0, i, j=0; for (i = 0; i < 10; i++, j++) | ![x](/felles/ikoner/rodfir.gif) |
Slet | delete | Anvendes til sletning af et objekt, et objekts property eller et element i en array. Returnerer Boolsk resultat.
delete someobject delete someObject.property delete someArray[index] | ![x](/felles/ikoner/rodfir.gif) |
In | in | Undersøger om anført property er indeholdt i anført objekt. Returnerer Boolsk resultat.
if ("phone" in myObject) document.write ("property is present"); else document.write ("property is not present"); | ![x](/felles/ikoner/rodfir.gif) |
Instance of | instanceof | Kontrollerer om et objekt indeholder data af anført type. Returnerer Boolsk resultat.
var color1 = new String("green"); color1 instanceof String; // returns true | ![x](/felles/ikoner/rodfir.gif) |
new | !!!!!!!!! | !!!!!!!!!!!!. | ![x](/felles/ikoner/rodfir.gif) |
this | this this.property | Nøgleord, der anvendes til at referere til aktuelt objekt. Refererer til det kaldende objekt i en metode.
this[.propertyName]
<B>Enter a number between 18 and 99:</B> <INPUT TYPE = "text" NAME = "age" SIZE = 3 onChange="validate(this, 18, 99)"> | ![x](/felles/ikoner/rodfir.gif) |
typeof | typeof | Returnerer typen på den testede variabel. Nyttig ved fejlfinding.
alert(typeof "Hello World") Returnerer "string"
alert(typeof (2 + 2)) Returnerer "number"
alert(typeof true) Returnerer "boolean"
alert(typeof cow) Returnerer "undefined" /cow er ikke blevet initialiseret som en variabel)
alert(typeof ('2' + 2)) Returnerer "string" (Konkatenering af en streng og et tal resulterer i en streng) | ![x](/felles/ikoner/rodfir.gif) |
void | void(0) | Returnerer en null -værdi. Browsere vil derved ikke være i stand til at indlæse en ny side. Kan ikke bruges uden en værdi.
<a href="javascript: void(0)">I am a useless link</a> <a href="javascript: void(myNum=10);alert('myNum = '+myNum)">Set myNum Please</a> | ![x](/felles/ikoner/rodfir.gif) |
Backslash Escape Characters
Særlige styrekarakterer med brøkstreg som 'fortegn'.
\' | ' | Enkelt anførselstegn |
\" | " | Dobblet anførselstegn |
\\ | \ | Enkelt backslash |
\b | Backspace | Flytter markøren ét tegn tilbage |
\f | Formfeed | Sideskift på printeren |
\n | Newline | Linieskift |
\r | Return | Flytter markøren til starten af linien |
\t | Tabulator | Tabulator |
\a | Alert | Udløser BEEP-lyd |
\v | Tabulator | Vertikal tabulator |
\0 | Null | Null character |
\cX | Ctrl X | X = pladsholder for det bogstav der skal trykkes samtidig med CTRL-tasten. |
|