Ogólne
ECMA-262
Core Java Script
- Słowa kluczowe
- Syntaktyka i gramatyka
- Wyrażenia, zmienne i literały
- Model obiektów
- Predefiniowane obiekty Array, Date, Math
Typy zmiennych
- Liczby: 10, 120.12
- Logiczne
true
lub false
- Stringi "a" lub 'a'
null
undefined
Dynamiczne typowanie (jak w PHP)
Ciekawostka:
"37" - 7 // returns 30
"37" + 7 // returns 377
Zmienna zdeklarowana przez var ma przypisaną wartość undefined
Stałe
- Tablice:
coffees = ["French Roast", "Columbian", "Kona"]
- Obiekty:
var Sales = "Toyota";
function CarTypes(name) {
if(name == "Honda")
return name;
else
return "Sorry, we don't sell " + name + ".";
}
car = {myCar: "Saturn", getCar: CarTypes("Honda"), special: Sales}
document.write(car.myCar); // Saturn
document.write(car.getCar); // Honda
document.write(car.special); // Toyota
Wyrażenia i operatory
Podstawowe:
- == - porównanie
- === - porównanie ze sprawdzaniem typów
- && || - AND OR
Inne:
condition ? val1 : val2
i++, j--
objectName = new objectType ( param1 [,param2] ...[,paramN] )
this[.propertyName]
typeof operand
void expression
Delete
x=42
var y= 43
myobj=new Number()
myobj.h=4 // create property h
delete x // returns true (can delete if declared implicitly)
delete y // returns false (cannot delete if declared with var)
delete Math.PI // returns false (cannot delete predefined properties)
delete myobj.h // returns true (can delete user-defined properties)
delete myobj // returns true (can delete user-defined object)
Wyrażenia regularne
Tworzenie
re = /ab+c/
re = new RegExp("ab+c")
Znaczenia:
^ | początek linii |
$ | koniec linii |
* | 0 lub więcej razy |
+ | 1 lub więcej razy {1,} |
? | 0 lub 1 |
. | cokolwiek oprócz nowej linii |
(x) | x zapamiętując na zmiennej |
x|y | x lub y |
{n} | n razy |
{n,} | n lub więcej razy |
{n,m} | n do m razy |
[xyz] | jeden z xyz (można również [1-6]) |
[^xyz] | nie jeden z xyz |
\? | dodatkowe znaczenia (białe znaki, etc.) |
Przykład:
<HTML>
<SCRIPT LANGUAGE = "JavaScript1.2">
re = /\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/
function testInfo() {
OK = re.exec()
if (!OK)
window.alert (RegExp.input +
" isn't a phone number with area code!")
else
window.alert ("Thanks, your phone number is " + OK[0])
}
</SCRIPT>
Enter your phone number (with area code) and then press Enter.
<FORM>
<INPUT TYPE="text" NAME="Phone" onChange="testInfo(this);">
</FORM>
</HTML>
Instrukcje
if (condition) {
statements1
}
[else {
statements2
} ]
switch (expression){
case label :
statement;
break;
case label :
statement;
break;
...
default : statement;
}
for ([initialExpression]; [condition]; [incrementExpression]) {
statements
}
do {
statement
} while (condition)
while (condition) {
statements
}
// This is a single-line comment.
/* This is a multiple-line comment. It can be of any length, and
you can put whatever you want here. */
Funkcje
function square(number) {
return number * number;
}
Server side
Client side