Cwicz1_JavaScript_kateg_skladniowe_typy_danych
Transkrypt
Cwicz1_JavaScript_kateg_skladniowe_typy_danych
Ćwiczenie „Kategorie składniowe języka JavaScript. Typy danych” Tematy ćwiczenia − symboli terminalne, identyfikatory, słowy kluczowe, literały, separatory, operatory, − typy standardowe, − zmienne, nadanie wartości początkowych, − tablice programowe. Wyniki opracowania zadań pokazywać za pomocą dwóch przeglądarek: Firefox Mozilla, Internet Explorer. W przypadku stosowania Firefox Mozilla używać konsoli błędów (Narzędzia/Konsola błędów). Korzystając z Notatnika opracowywać: plik HTML (XHTML), w tym zawierający program w języku JavaScript, zewnętrzny plik CSS. Wprowadzone dane wyświetlać stosując: metodę document.write lub window.alert. Dodać do programu wyświetlenie imienia i nazwiska autora aplikacji. a) Język JavaScript Zadanie Napisać zdanie w postaci jedno- oraz kilkuwierszowego komentarza. Zapisać liczbę całkowitą, jako literał Numeric, oraz wyświetlić w oknie. Zapisać wartość, jako literał Boolean, oraz wyświetlić w oknie. Zapisać liczbę zmiennoprzecinkową, jako literał Numeric, oraz wyświetlić w oknie. Zapisać znak, jako literał String, oraz wyświetlić w oknie. Zapisać tekst, jako literał String, oraz wyświetlić w oknie. Opracowanie zadań <skrypt> Testowanie <zrzut z przeglądarki> b) Tablice Zdefiniować w języku JavaScript tablicę z liczbami całkowitymi (ilość elementów ustawić równą numeru wariantu), oraz wyświetlić w oknie. Zdefiniować w języku JavaScript tablicę z liczbami zmiennoprzecinkowymi (ilość elementów ustawić równą numeru wariantu), oraz wyświetlić w oknie. Zdefiniować w języku JavaScript tablicę do przechowywania ... (z przytoczonej tabeli wariantów), oraz wyświetlić w oknie. Wprowadzić wartości przypadkowe. Opracowanie zadań <skrypt> Testowanie <zrzut z przeglądarki> Tabela wariantów punktu b) Np 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Element tablicy Nazwa koloru Imię osoby Model auta Nazwa figury Nazwisko osoby Nazwa tańca Model auta Nazwa figury Nazwa koloru Nazwa tańca Nazwa państwa Nazwa figury Nazwa koloru Imię osoby Nazwa miasta Nazwa kurortu Np 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Element tablicy Nazwa firmy Adres firmy Numer telefonu Model auta Nazwa owocu Numer szkoły Nazwa tańca Nazwisko osoby Nazwa szkoły Nazwa tańca Model auta Nazwa figury Nazwa miasta Imię osoby Nazwa państwa Nazwa kurortu Np 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Element tablicy Nazwa koloru Imię osoby Model auta Nazwa figury Nazwisko osoby Nazwa tańca Model auta Nazwa figury Nazwa koloru Nazwa tańca Nazwa państwa Nazwa figury Nazwa koloru Imię osoby Nazwa miasta Nazwa kurortu Np 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Element tablicy Nazwa firmy Adres firmy Numer telefonu Model auta Nazwa owocu Numer szkoły Nazwa tańca Nazwisko osoby Nazwa szkoły Nazwa tańca Model auta Nazwa figury Nazwa miasta Imię osoby Nazwa państwa Nazwa kurortu c) Funkcje 1) Obliczyć w języku JavaScript funkcję całkowitą zależną od czterech argumentów całkowitych. Funkcję pobrać z przytoczonej tabeli wariantów. Wprowadzić przypadkowe wartości argumentów. Wyświetlić wynik i argumenty. 2) Obliczyć w języku JavaScript funkcję zmiennoprzecinkową zależną od czterech argumentów zmiennoprzecinkowych. Funkcję pobrać z przytoczonej tabeli wariantów. Wprowadzić przypadkowe wartości argumentów. Wyświetlić wynik i argumenty. Tabela wariantów punktu c) Np 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Funkcja (a + b) * c / d a –( b * c) / d a * (b + c) / d a / (b + c) * d (a + b) – (c/ d) (a - b * c) + d a * (b – c) + d a/b-c+d (a + b) * (c + d) (a – b) * c + d a * b * (c + d) a / (b * c) + d a+b/c/d (a – b) / c + d a*b/c+d a / b / (c + d) Np 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Opracowanie zadań <skrypt> Testowanie <zrzut z przeglądarki> Funkcja (a + b) * c – d (a – b) * c / d a *( b + c) - d a / (b + c – d) a + (b – c) - d a-b-c/d a * (b - c – d) a / (b - c )- d a+b*c-d (a – b) * (c – d) a*b*c–d a/b*c-d a+b/c-d a-b/c-d a*b/c-d a/b/c-d Np 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Funkcja a + (b * c) / d a – b * (c / d) a * b + (c / d) a / b + (c * d) a + (b – (c/ d)) a - (b * c) + d a * b – (c + d) (a / b) - c + d a + (b * (c + d)) a – (b * c) + d a * (b * (c + d)) a / b * (c + d) a + b / (c / d) (a – (b / c)) + d a * (b / c + d) a / (b / (c + d)) Np 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Funkcja a + b *( c – d) a–b*c/d a*b+c-d a / b + (c – d) a + b – (c - d) a - b - (c / d) a * b - (c – d) a / b - (c - d) a + (b * c) - d a – (b * (c – d)) a * b * (c – d) a / b * (c - d) a + b / (c - d) a - (b / c - d) a * b / (c - d) a / b /( c - d) d) Podprogramy Realizować zadanie rozdziału 3 tak, aby obliczenia funkcji byli wykonywane w podprogramach. Opracowanie zadań <skrypt> Testowanie <zrzut z przeglądarki> Zaliczyć ćwiczenie u prowadzającego. Sprawozdanie Na każdym zajęciu laboratoryjnym sporządza się za pomocą edytora Word sprawozdanie na bazie materiałów ćwiczenia. Bazowa zawartość sprawozdania musi być przygotowana w domu przed ćwiczeniem (sprawozdanie do ćwiczenia pierwszego jest przygotowywane w czasie ćwiczenia). W czasie ćwiczenia do sprawozdania są dodawane wyniki testowania. Treść sprawozdania: strona tytułowa, spis treści sporządzony za pomocą Word'a, dla każdego punktu rozdziały "Zadanie ", "Opracowanie zadania" (rozdział ze skryptem i komentarzami), "Testowanie" (rozdział z opisem danych wejściowych i wynikami testowania, w tym zrzuty okna przeglądarki). Wzorzec strony tytułowej znajduje się w pliku Strona_tytulowa_stac_Interpr_jezyki_progr_PWSBAiTK.doc. Nazwa pliku ze sprawozdaniem musi zawierać skrót "InterprJP_niestac_", numer ćwiczenia i nazwisko studenta (bez polskich liter, żeby można było archiwizować). Pliki ze sprawozdaniem są przekazywane do archiwum grupy. Wskazówki Język JavaScript (ECMAScript) Specyfikację języka ECMAScript można pobrać ze strony internetowej spod adresu www.ecma-international.org Program w języku JavaScript Program w języku JavaScript jest umieszczany na dwa sposoby: 1) w tekście HTML wewnątrz znaczników "<script>" i "</script>", 2) w pliku z rozszerzeniem ".js", przy czym plik jest wskazywany przez opcję "src" znacznika "<script>". Znacznik "<script>" może mieć dwa atrybuty: type, który wskazuje używany język skryptowy, oraz src, który wskazuje zewnętrzny plik JavaScript. Przykład: <script type="text/javascript" src="./plik.js"> </script> Starsze przeglądarki przyjmują zamiast atrybutu type atrybut language. Przykład: <script language="JavaScript" src="./plik.js"> </script> Można nie wskazywać atrybut type lub language, ponieważ przeglądarki traktują język JavaScript, jako domyślny dla znacznika "<script>". Znacznik "<script>" z kodem JavaScript można umieszczać tak w sekcji body, jak i w sekcji head. Kod JavaScript lepiej umieszczać w sekcji body. W sekcji head wygodniej umieszczać funkcje napisane w JavaScript, a odwołania do tych funkcji - w sekcji body. Osadzanie kodu JavaScript w znaczniku "<script>" Przykład z kodem JavaScript osadzonym w znaczniku "<script>": <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> </head> <body> <p>Tekst testowy</p> <script type="text/javascript"> document.writeln("Test znacznika script"); </script> </body> </html> Odwołanie w znaczniku "<script>" do kodu JavaScript Przykład z odwołaniem w znaczniku "<script>" do kodu JavaScript umieszczonego w pliku: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> </head> <body> <p>Tekst testowy</p> <script type="text/javascript" src="./plik.js"> </script> </body> </html> Zawartość pliku "plik.js": document.writeln("Test pliku javascript"); Komentarze w języku JavaScript są oznaczane tak samo, jak w języku C. To znaczy, że znaki "//" są stosowane do komentarza jednowierszowego, umieszczonego na prawo od znaków do końca wiersza, a pary znaków "/*" i "*/" są stosowane do komentarza kilkuwierszowego, umieszczonego między tymi znakami. Przykład: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> <script type="text/javascript"> /* komentarz kilkuwierszowy */ document.writeln("Test znacznika script"); // komentarz jednowierszowy </script> </head> <body> <p>Tekst testowy</p> </body> </html> Kategorie składniowe języka JavaScript Symbole terminalne Program w języku JavaScript jest łańcuchem znaków ASCII (American Standard Code for Information Interchange, Standardowy amerykański kod wymiany informacji). Tekst programu w języku programowania JavaScript jest dzielony na wierszy za pomocą symboli końcu wierszy (ang. line terminators): - znak „Nowy wiersz” (LF - line feed) - kod 0xA, oznaczenie "\n", - znak „Powrót na początek wiersza (powrót karetki)” (CR - carriage return) - kod 0xD, oznaczenie "\r", - para znaków „Powrót na początek wiersza” - „Nowy wiersz” (CR-LF), oznaczenie "\r\ n". Oprócz symboli końcu wiersza tekst jest dzielony na fragmenty komentarzami. Język programowania JavaScript ma gramatykę kontekstowo niezależną. Analizowany tekst jest dzielony kompilatorem na elementy języka (ang. tokens) w tych miejscach, gdzie znajdują się spacji białe oraz komentarze. Do spacji białych (ang. white spaces) należą oprócz symboli końcu wiersza (ang. line terminators) znaki: - znak odstępu (spacji) (kod 0x20), - znak tabulacji (kod 0x9), - znak końca strony (kod 0xFF). Elementy języka (ang. tokens) można podzielić na - identyfikatory (ang. identifiers), - słowy kluczowe (ang. keywords), - literały (ang. literals), - separatory (ang. separators) i - operatory (ang. operators). Język JavaScript należy do grupy języków, w których ma znaczenie wielkość liter (ang. case sensitive). Identyfikatory Identyfikator jest łańcuchem liter i cyfr. Na początku identyfikatora nie może być cyfra. Jako identyfikator nie można stosować słowo kluczowe, literał logiczny (tj. true, false) oraz literał zerowy (tj. null). Do liter należą: znaki liter łacińskich dużych od "A" do "Z" (kody od 0x41 do 0x51), znaki liter łacińskich małych od "a" do "z" (kody od 0x61 do 0x7A), znak podkreślenia "_" (kod 0x5F), znak dolara "$" (kod 0x24). Do cyfr należą cyfry dziesiętne od "0" do "9" (kody od 0x30 do 0x39). Słowy kluczowe Zbiór słów kluczowych języka JavaScript. break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with Literały Literał przedstawia wartość stałej lub początkową wartość zmiennej. W języku JavaScript są następujące literały: Numeric (liczba całkowita lub rzeczywista), Boolean (logiczny), String (znak lub łańcuch znaków), Null (zerowy). Literał Numeric Literał Numeric służy do zapisywania wartości liczb całkowitych i zmiennoprzecinkowych. W języku JavaScript literał Numeric jest łańcuchem znaków dziesiętnych, szesnastkowych lub ósemkowych. Literał może zawierać znak liczby. Liczba szesnastkowa jest ciągiem cyfr od 0 do 9 i liter od A do F lub od a do f, przed którym muszą być zapisane dwa znaki „0X” lub „0x”. Liczba ósemkowa jest ciągiem cyfr od 0 do 7, przed którym jest zapisany, jako prefiks znak „0”. Przykłady: 17-88 123456543 0x1ADF -0x8b7 0xABCDEF987654 02376 -05432 076543234156 Dla wszystkich system liczenia wartość 0 jest prezentowana znakiem 0. Literał Numeric służy też do zapisywania wartości liczb zmiennoprzecinkowych i zawiera dwie części: całkowitą i ułamkową, między którymi znajduje się znak "." (kropka). Literał Numeric dla liczb rzeczywistych może zawierać znak liczby oraz znak potęgi. Literał rzeczywisty może zawierać literę e lub E, po której występuje wykładnik w postaci literału całkowitego ze znakiem, na przykład 1.5E+12, tj. liczbę 1,5 jest mnożona przez potęgę +12 podstawy 10. Przykłady: 1.7 -8.8e100.12E-4 -88.0 0.1234567e+17 Literał Boolean Literał Boolean służy dla oznaczenia jednej z dwóch wartości "prawda" i "fałsz". W języku JavaScript literały Boolean true i false opisują dwie wartości obiektów typu logicznego. Literał String Literał String stosuje się dla oznaczenia wartości jednego znaku oraz dla oznaczenia wartości wiersza. Tekst (pojedynczy znak lub łańcuch znaków) w języku JavaScript jest zapisywany w apostrofach lub cudzysłowach, na przykład: ‘a’ ‘o’ „baobab”. Escape - łańcuchy Jako znak można stosować symboliczny opis sterujących kodów ASCII nazywany Escape - łańcuchem: \r - znak „powrót na początek wiersza”, \n - znak „przejście do nowego wiersza”, \b - znak „cofnięcie o jeden znak”, \f - znak „przejście na nową stronę”, \t - znak tabulacji, \\ - znak "\", \' - znak apostrofa, \" - znak cudzysłowu, \0ccc - znak w kodzie ósemkowym (ccc - kod ósemkowy), \xHH - znak w kodzie szesnastkowym (HH - kod szesnastkowy). \uHHHH - znak w kodzie UNICODE (HHHH - kod szesnastkowy) . Przykłady: 'a' '\\''\'' '\r' '\t' '\n' "nowy\r\nwiersz" Literał Null Literał Null null służy dla oznaczenia zerowej wartości referencji. Separatory Separatory rozdzielają wyrażenia lub konstrukcje językowe na części. W języku JavaScript do separatorów doliczone nawiasy: ( ) { } [ ] , . ; i znaki operatorów: < > <= >= == != === !== + - * % ++ -- && || ? : << >> <<< >>> & | ^ ! ~ = += -= *= %= <<= >>= <<<= >>>= &= |= ^= Operatory języka JavaScript Operator () [] . ! ~ + ++ -* / % + << >> <<< >>> > < >= <= == === != !== & ^ | && || ? : = &= |= ^= += -= *= /= %= <<= >>= <<<= >>>= , Przeznaczenie Funkcja Indeks Konkatenacja Negacja logiczna Negacja bitowa Unarny operator znaku "plus" Unarny operator znaku "minus" Zwiększenie o jeden Zmniejszenie o jeden Mnożenie Dzielenie Dzielenie modulo Binarny operator sumowania Binarny operator odejmowania Przesuwanie liczby ze znakiem w lewo ( w kierunku starszych cyfr) Przesuwanie liczby ze znakiem w prawo (w kierunku młodszych cyfr) Przesuwanie liczby bez znaku w lewo ( w kierunku starszych cyfr) Przesuwanie liczby bez znaku w prawo (w kierunku młodszych cyfr) Porównanie wartości na większy Porównanie wartości na mniejszy Porównanie wartości na niemniejszy Porównanie wartości na niewiększy Porównanie wartości na równo Porównanie mocne (wartości i referencji) na równo Porównanie wartości na nierówno Porównanie mocne (wartości i referencji) na nierówno Koniunkcja bitowa (iloczyn bitowy) Różnica symetryczna bitowa Alternatywa bitowa (suma bitowa) Koniunkcja logiczna (iloczyn logiczny) Alternatywa logiczna (suma logiczna) Wybór Separacja wariantów Przypisanie Przypisanie z koniunkcją bitową (iloczynem bitowym) Przypisanie z alternatywą bitową (sumą bitową) Przypisanie z różnicą symetryczną bitową Przypisanie z sumowaniem Przypisanie z odejmowaniem Przypisanie z mnożeniem Przypisanie z dzieleniem Przypisanie z dzieleniem modulo Przypisanie z przesuwaniem liczby ze znakiem w lewo ( w kierunku starszych cyfr) Przypisanie z przesuwaniem liczby ze znakiem w prawo ( w kierunku młodszych cyfr) Przypisanie z przesuwaniem liczby bez znaku w lewo ( w kierunku starszych cyfr) Przypisanie z przesuwaniem liczby bez znaku w prawo ( w kierunku młodszych cyfr) Separacja Operator zwiększenia o jeden "++" i operator zmniejszenia o jeden "--" może być stosowany w dwóch wariantach: przedrostkowym i przyrostkowym. Etykiety Etykieta oznacza instrukcję, do której w programie może być skok. Na końcu etykiety powinny być napisany dwukropek. Typy danych W języku JavaScript nie ma deklaracji typów zmiennych, funkcji itp. Typ jest ustawiany przez interpretator w zależności od kontekstu. Operator typeof zwraca typ. Typ Undefined Obiekt typu Undefined ma tylko jedną wartość "undefined". Taka wartość jest przypisywana zmiennej, która jest tylko zadeklarowana, ale tej zmiennej nie jest przypisana wartość początkowa. Przykład: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> </head> <body> <p>Tekst testowy</p> <script type="text/javascript"> var zmienna; document.writeln(typeof zmienna); </script> </body> </html> Typ Null Typ Null posiada tylko jedną wartość "null". Taka wartość jest pokazywana, jeśli nie istnieje obiekt programowy. Przykład: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> </head> <body> <p>Tekst testowy</p> <script type="text/javascript"> var zmienna=null; document.writeln(zmienna); </script> </body> </html> Typ Boolean Typ Boolean ma dwie wartości false („fałsz”) i true („prawda”). Przykład: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> </head> <body> <p>Tekst testowy</p> <script type="text/javascript"> var zm2=false; document.writeln(zm2); </script> </body> </html> Typ Number Typ Number może reprezentować liczby całkowite oraz zmiennoprzecinkowe, tj. każdą liczbę rzeczywistą. Liczba zmiennoprzecinkowa jest rozpoznawana przez znak "." (kropka). Do zapisywania liczb zmiennoprzecinkowych można stosować też notację naukową (wykładniczą). Przykład: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> </head> <body> <p>Tekst testowy</p> <script type="text/javascript"> var zm31=70; var zm32=0x70; var zm33=070; var zm34=70.7; var zm35=7.7e1; document.writeln(zm31); document.writeln(zm32); document.writeln(zm33); document.writeln(zm34); document.writeln(zm35); </script> </body> </html> Liczba musi być w zakresie (Number.MIN_VALUE, Number.MAX_VALUE). Jeśli wartość wyrażenia będzie większa niż wartość Number.MAX_VALUE to będzie pokazywana wartość Number.POSITIVE_INFINITY, jako tekst "Infinity". Jeśli wartość wyrażenia będzie mniejsza niż wartość Number.MIN_VALUE to będzie pokazywana wartość Number.NEGATIVE_INFINITY, jako tekst "-Infinity". Liczba może mieć też wartość "NaN" ("Not a Number"), która powstaje w przypadku niepoprawnej konwersji. Na przykład przy konwersji słowa na typ Number: var nn=Number("numer"); Typ String Typ String reprezentuje ciągi znaków w Unicode. Przykład: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> </head> <body> <p>Tekst testowy</p> <script type="text/javascript"> var kolor1="czerwony"; //kolor zapełnienia prostokąta var kolor0="czarny"; /* kolor stosowany w aplikacji dla wszystkich graficznych obiektów */ document.writeln(kolor1); document.writeln(kolor0); </script> </body> </html> Rzutowanie typów Interpretator JavaScript może wykonać trzy rodzaje przekształceń typów: Boolean(wartość_innego_typu), Number(wartość_innego_typu), String(wartość_innego_typu). var var var var var var var Przykłady: vb1=Boolean(0); // false vb2=Boolean(""); // false, ponieważ wiersz jest pusty vb3=Boolean("body"); // true, ponieważ wiersz jest niepusty vn1=Number(false); // 0 vn2=Number("1.0"); // 1.0 vs1=String(1.0); // "1.0" vs2=String(true); // "true" Wysokość liter ma znaczenie we wszystkich elementach języka. Przykładowa definicja dwóch różnych zmiennych: var kolor="czerwony" var Kolor="czarny" Średnik Średnik kończący wiersz jest opcjonalny. Na przykład: var kolor1="czerwony" var kolor2="czarny" Interpretator JavaScript dołącza średnik na końcu wiersza. Dlatego należy kontrolować, czy koniec wiersza jest końcem instrukcji. Konstrukcje programowe Zmienne Ważna cecha języka JavaScript: Typ zmiennej zależy od przypisanej wartości. Na przykład: var zm=0; //zmienna całkowita var zm="test"; //zmienna, łańcuch znaków var zm=true; //zmienna logiczna var kolor1="czerwony"; //zmienna, łańcuch znaków var kolor0="czarny"; /* zmienna, łańcuch znaków */ Zmienna jest deklarowana za pomocą słowa kluczowego "var". Zmienna może mieć właściwości i metody. Na przykład: var kolor1="czerwony"; document.writeln(kolor1.length); //wyświetla "8" Przekształcenie (konwersja) wartości zmiennej Interpretator JavaScript może wykonać konwersję wartości. Konwersja wartości na łańcuch znaków Dla konwersji wartości typu Boolean, Number i String na łańcuch znaków jest stosowana metoda ToString. Przykład: var liczba=1.2; document.writeln(liczba.ToString()); //"1.2" Metoda ToString może mieć argument - podstawę systemu liczenia. Przykład: var liczba=32; document.writeln(liczba.ToString(2)); //"100000" document.writeln(liczba.ToString(8)); //"40" document.writeln(liczba.ToString(16)); //"20" Konwersja wartości na liczbę Mają zastosowanie funkcje parseInt i parseFloat. Funkcje analizują ciąg znaków i zatrzymują się na znaku, który nie odpowiada liczbie. Przykłady: var i1=parseInt("2"); // 2 var i2=parseInt("2dolara"); // 2 var i3=parseInt("2.2"); // 2 var i4=parseInt("dolar"); // NaN var f1=parseFloat("2.2"); // 2.2 var f2=parseFloat("2.2dolara"); // 2.2 var f3=parseFloat("2.2.3"); // 2.2 var f4=parseFloat("dolar"); // NaN Funkcja parseInt może mieć drugi argument - podstawę systemu liczenia. Przykłady: var i1=parseInt("10",2); // 2 var i2=parseInt("010",8); // 8 var i3=parseInt("A",16); // 10 Blok programowy Blok programowy jest oznaczany tak samo jak w języku C za pomocą nawiasów klamrowych. Przykład. if (indeks==0) { kolor="czerwony"; document.writeln("Kolor jest zmieniony na czerwony"); } Klasy Na szczycie hierarchii klas znajduje się klasa Object. Funkcje Składnia funkcji (podprogramu): function _nazwa (arg1, arg2, ... , arg3) { // ... instrukcje return _param; } Brak parametru _param oznacza, że funkcja nie zwraca wartości; w języku JavaScript ten przypadek jest interpretowany tak, że typ zwracanej wartości jest undefined. W zakresie bloku programowego funkcji można stosować obiekt - tablicę "arguments". Używając indeksu można odwoływać się do argumentów funkcji, na przykład arguments[0] to pierwszy argument funkcji. Przykład definiowania i wywołania funkcji: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> <title>Strona</title> <script type="text/javascript"> function suma(a, b) { return a+b; } </script> </head> <body> <p>Tekst testowy</p> <script type="text/javascript"> var aa=5; var bb=10; var cc=suma(aa,bb); document.writeln(cc); </script> </body> </html> Klasa Function umożliwia definiowanie funkcji w kodzie JavyScript: var _nazwa=new Function(arg1,..., argN, treść_funkcji); Przykład: var suma=new Function(a, b, return a+b; ); Tablice Tablice można wprowadzić do kodu JavaScript jako obiekty klasy Array. Zadeklarowana tablica jest dynamiczna. Wprowadzenie nowego elementu rozszerza tablicę. Przykład: var tabl=new Array(); //alokacja pustej tablicy tabl[0]=0; tabl[1]=1; tabl[2]=2; tabl[7]=7; // skok w rozmiarze tablicy; // elementy [3]...[6] będą zerowe Można zainicjalizować tablicę przy deklaracji: var tabl=new Array(0, 1, 2, 3, 4); //alokacja tablicy na 5 elementów Jeszcze jeden sposób definicji tablicy: var tabl=[0, 1, 2, 3, 4]; //alokacja tablicy na 5 elementów Faktyczny rozmiar tablicy zwraca właściwość length: var rozmiar=tabl.length; Wyrażenia Wyrażenie zawiera zmienne i wywołania funkcji połączone operatorami. Instrukcja warunkowa Instrukcja warunkowa: if (warunek) blok1_instrukcji else blok2_instrukcji; Instrukcja switch Składnia instrukcji switch: switch (wyrażenie) { case wartość1: blok_instrukcji; break; //... case wartośćN: blok_instrukcji; break; default: blok_instrukcji; break; } Instrukcje iteracyjne Instrukcja while Składnia: while (_warunek) { // blok instrukcji } Instrukcja do-while Składnia: do { // blok instrukcji } while (_warunek); Instrukcja for Składnia: for (instrukcja_inicjalizacji;_warunek;instrukcja_zmiany) { // blok instrukcji } Instrukcje break i continue Instrukcja break powoduje natychmiastowe zakończenie powtórzeń, a instrukcja continue - natychmiastowe przejście na powtórzenie. W instrukcjach break i continue może znajdować się etykieta instrukcji, do której jest wykonany skok. Instrukcja for-in Służy do odwołania do wszystkich właściwościach obiektu. Składnia: for (_właściwość in _wyrażenie) { // blok instrukcji } Instrukcja with Służy do skrócenia odwołania do właściwości lub metody obiektu. Wewnątrz programowego bloku związanego z instrukcją with można nie wypisywać nazwy obiektu. Składnia: with (nazwa_obiektu) { // blok instrukcji zawierający właściwości lub metody wskazanego obiektu }