Første |
|
|
JavaScript "Core Language" serie, Planche nr. 46 |
 |
Udskrift af : JavaScript "Core Language"
|
Planche 1 : JavaScript "Core Language"
Omfatter
- Værdier, variable og konstanter
- Udtryk og operatorer
- Regulære udtryk
- Sætninger
- Funktioner
- Objekter
- Objekt-modellen
Planche 2 : JavaScript værdier
Datatyper
- Tal - heltal og decimaltal
- logisk/boolsk (true/false)
- Tekststreng
- null
- undefined
Planche 3 : JavaScript værdier 2
Dynamisk definition
Kan omdefineres uden problemmer:
- svaret = "Det forstår jeg ikke..."
Automatisk konvertering til tekststrenge med +
- svaret = "Svaret er " + 42
Mens
- svaret = "37" - 7
- svaret = "37" + 7
Planche 4 : JavaScript Variable
Symbolske navne for værdier:
- Starter med bogstav eller '_'
- Resten bogstaver, '_' eller tal
Variable erklæres eksplicit
eller implicit
Planche 5 : Variable evaluering
Bruges en variabel uden at være erklæret får den værdien 'undefined'
Det giver runtime-fejl, hvis variablen var erklæret uden var
Ellers returneres 'undefined' eller 'NaN' (numerisk)
Boolsk "værdi" af 'undefined' er 'false'
Planche 6 : Dækningsområde
Eklæringens "Scope"
Uden for funktioner - hele dokumentet (vinduet)
Inde i funktioner - i denne
Globale variable i andre vinduer (frames)
Hvor 'parent' peger på en overliggende FRAMESET
Planche 7 : Konstanter
Kan være
- Array
- Boolean
- Decimaltal (Floating Point)
- Heltal (integers)
- Object
- Tekststrenge (String)
Planche 8 : Array Literals
kaffetyper = ["Blå Cirkel", "Rød Cirkel", "Frellsens"]
Array'et fortolkes hver gang det evalueres
Array konstanter er også Array Objekter (se senere)
Tomme kommaer medregnes - undtagen til sidst.
Planche 9 : Andre konstanter
Boolean :
Decimaltal : heltal "." heltal " E" heltal
- "." eller "E" skal være der
Heltal :
- heltal
- "0" oktalværdi
- "0x" hexværdi
Planche 10 : Objekt-konstanter
Består af en liste af "property" navne og værdier i {}
eksempel:
cykel = { minCykel : "Ralaigh", hentCykel : cykelTyper ("Hvis?"), special: farve }
cykel.minCykel giver "Ralaigh" o.s.v.
Planche 11 : String-konstanter
Består at tekster i matchene "" eller ''.
Specialtegn angives med \ foran:
Planche 12 : Udtryk
JavaScript har 3 typer udtryk
- Aritmetiske
- Tekst (String)
- Logisk
Planche 13 : Operatorer
- Assignment
- Comparison
- Aritmetisk
- Bitoperation
- Logisk
- Tekst
- Special
Operatorer kan være binary eller unary
Planche 14 : Assignment
Assignment operator er =
Andre, forkortede udgaver:
Planche 15 : Sammenligninger
Comparison Operators
Planche 16 : Aritmetiske operatorer
Planche 17 : Bitoperationer
Bitrvis Operatorer
Planche 18 : Bit-flytninger
"Bitwise Shift operators"
Planche 19 : Logiske operatorer
Arbejder på boolske ("Boolean") udtryk:
Planche 20 : Tekst-operatorer
Hvis der indgår String-udtryk, kan '+' og '+=' bruges til at
sammenstille tekststrenge med.
Planche 21 : Special operatorer
Betingelser:
- betingelse "?" værdi1 ":" værdi2
Hvis 'betingelse' er 'true' returneres 'værdi1', eller 'værdi2'
Komma-operator:
Begge udtryk udregnes, men kun det sidste returneres.
delete-operator:
Sletter et objekt, en property eller et element i et array.
- "delete" objektnavn
- "delete" objektnavn "." propertynavn
- "delete" objektnavn "[" indextal "]"
new-operator :
Opretter et nyt objekt af en brugerdefineret eller prædefineret type.
- objektnavn = "new" objekttype "(" parameterliste ")"
this-operator :
Betegnelse for aktuelt objekt.
typeof-operator:
Returnere operandens type i en tekststreng
Returnerer "string", hvis vaerdi er tekstvariabel.
void-operator:
Det efterfølgende udtryks værdi ignoreres
Returnerer 'undefined' istedet for tallet 4
Planche 22 : Operator prioritet
Operator precedence
Planche 23 : Regulære udtryk
Behandles ikke her.
se kapitel 4 i JavaScript Guide
Planche 24 : Sætninger
Kan være:
- betingelser
- løkker
- objektmanipuleringer
- kommentarer
Sætninger adskilles af ";"
Alle udtryk er også sætninger.
Planche 25 : Betingelsessætninger
if - else
if ( betingelsesudtryk ) {
sætninger
}
if ( betingelsesudtryk ) {
sætninger
}
else {
sætninger
}
Planche 26 : If-eksempel
I følgende eksempel returnerer checkData værdien 'true', hvis der er
præcis 3 tegn i 'Text'-objektet. Ellers vises en advarsel, og værdien
'false' returneres.
function checkData () {
if (document.form1.threeChar.value.length == 3) {
return true
} else {
alert("Enter exactly three characters. " +
document.form1.threeChar.value + " is not valid.")
return false
}
}
Planche 27 : Switch
switch-udtryk
switch ( udtryk ) {
case etikette1 :
sætninger
break;
case etikette2 :
sætninger
break;
...
default : sætninger
}
Planche 28 : Switch-eksempel
I det følgende eksempel skrives 'Bananas are $0.48 a pound.', hvis
expr har værdien "Bananas".
switch (expr) {
case "Oranges" :
document.write("Oranges are $0.59 a pound.");
break;
case "Apples" :
document.write("Apples are $0.32 a pound.");
break;
case "Bananas" :
document.write("Bananas are $0.48 a pound.");
break;
case "Cherries" :
document.write("Cherries are $3.00 a pound.");
break;
default :
document.write("Sorry, we are out of " + i + ".");
}
document.write("Is there anything else you'd like?");
Planche 29 : Løkke-udtryk
for ([initialExpression]; [condition]; [incrementExpression]) {
statements
}
do {
statement
} while (condition)
while (condition) {
statements
}
Eksempler på While-løkker:
Udføres mindst 1 gang, og indtil i er 5.
do {
i+=1;
document.write(i);
} while (i<5);
Udføres 3 gange, og x tælles op med værdien af n hver gang.
n = 0
x = 0
while( n < 3 ) {
n ++
x += n
}
Uendelig løkke - afsluttes aldrig:
while (true) {
alert("Hello, world") }
Planche 30 : Ingen Goto, men...
Goto findes ikke - men der er noget der ligner:
Etikette - "label" - sætning
Break-sætning
Continue-sætning
- "continue"
- "continue" etikette
Afbryder et loop, og fortsætter med næste værdi.
Planche 31 : Objekt-manipuleringer
for...in sætninger
en slags løkke, der arbejder på objekt-properties:
for (variable in object) {
statements }
eksempel:
function dump_props(obj, obj_name) {
var result = ""
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "\n"
}
result += "\n-----------\n"
return result
}
Udskriver alle properties (attributter) for et objekt obj og dets navn
obj_name.
Planche 32 : With-sætning
"with" sætter standard (default eller underforstået) objekt for
alle sætninger imellem "{" og "}"
with (object){
statements
}
Planche 33 : Kommentarer
Kommentarer kan skrives overalt i koden, hvis følgende regler
overholdes:
- "//" - og resten af linien ignoreres
- Alt mellem "/*" og "*/" ignoreres
- Starten af en HTML-kommentar "