Programování v jazyce JavaScript
Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze © Pavel Štěpán, 2011
Standardní objekty BI-JSC
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
P. Štěpán
PHP
BI-PHP, výpis 9
1/6
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Standardni objekty
<script type="text/javascript"> // dalsi metody pro praci s polem var jazyky = ["Java","PHP","C#"]; // spojovani poli var jazyky2 = jazyky.concat("Python",["JavaScript","Perl"]); // alert(jazyky2); // casti pole var jazyky3 = jazyky2.slice(2); // od pozice 2 do konce // slice pro zaporne parametry – odecte se od delky pole // alert(jazyky2); // alert(jazyky3); var jazyky4 = jazyky2.slice(1,4); // od 1 do 3!! // alert(jazyky4); // metoda splice (vkladani a nahrazovani) jazyky = ["Java","PHP","C#","Python"]; // vlozi na pozici 2 // jazyky2 = jazyky.splice(2,0,"JavaScript","Perl"); // alert(jazyky); // vymaze a vlozi (na pozici 2) 2. parametr - vymazavana delka // jazyky2 = jazyky.splice(2,1,"JavaScript","Perl"); // alert(jazyky2); // vymazane // alert(jazyky); // upravene pole // vymaze od dane pozice dany pocet prvku jazyky2 = jazyky.splice(2,1); // alert(jazyky2); // alert(jazyky);
P. Štěpán
PHP
BI-PHP, výpis 9
2/6
// typ Date // aktualni datum (mozno udat pocet msec 1.1.1970 - parametr): var now = new Date(); // alert(now); var april = Date.parse("4/1/2001"); // americke datum; pocet msec // mozne i jine anglosaske formaty // alert(april); // 1.6.2011 10:32:30 (mesic od 0!!) // (jen prvni dva parametry povinne) var cerven = Date.UTC(2011,5,1, 10,32,20); // alert(new Date(cerven)); // stejne parametry Date, ale mistni cas // alert(new Date(cerven)); // .toString, .toLocalString - mirne odlisnosti v prohlizecich // alert(cerven.valueOf()); // valueOf = cislo-pocet msec pro datum // formatovaci metody .toDateString, .toLocalDateString, // .toLocalTimeString, toUTGString - opet se lisi // mnoho metod get, set (getMonth(), setMinutes(min), ... // typ RegExp - regularni vyrazy // literalovy zapis /vzor/priznaky // priznaky(nepovinne):g - globalni, m - multiline, i - ignore case var pattern = /a(b+(c))/i; // lze pouzit i konstruktor RegExp var pattern2 = new RegExp("a(b+(c))","i"); // pozor na metaznaky // a \ v retezci - zdvojene // // // // //
vlastnosti typu RegExp: global,ignoreCase,multiline, lastIndex,source lastIndex - index, od ktereho bude hledana shoda. Implicite 0 source - puvodni vyraz ve tvaru literalu alert(pattern.lastIndex);
// metody RegExp // metoda exec vrati pole vysledku (+ specificke vlastnosti tohoto // pole), nebo null, není-li shoda nalezena var matches = pattern.exec("rsabbbcxyabctu"); // alert(matches.index); // 2 - pozice, kde se nasla shoda // alert(matches[0]); // podretezec, odpovidajici celemu re (abbbc) // alert(matches[1]); // podretezec, odpovidajici 1. podvyrazu // (bbbc) // alert(matches[2]); // podretezec, odpovidajici 2. podvyrazu (c) // pro globalni vzor (priznak g) nachazi pro kazde volani další // shodu (zvysuje index) P. Štěpán
PHP
BI-PHP, výpis 9
3/6
var shoda = pattern.test("rsabbbcxyabctu"); // true - shoda se nasla // alert(shoda); // primitivni obalove typy - umoznuje pouzivat metody na // primitivnich hodnotach var str1 = "abcdefgh"; var str2 = str1.substr(2,3); // pri cteni vytvori objekt // obaloveho typu, po pouziti se instance odstrani // typ Boolean - prilis se nepouziva // pozor pri vytvareni explicitnich instanci var falseObj = new Boolean(false); // objekt!! var result = falseObj && true; // true // typ Number var numObject = new Number(3); // obvykle automaticky // ma metody toString, toLocaleString a valueOf (vlastni cislo) // metoda toFixed vraci řetězec s daym poctem desetinnych mist var num = 5; // metoda toFixed // alert(num.toFixed(2)); // "5.00" - 2 desetinna mista // metoda toExponential vraci retezec s cislem v exponentovem tvaru // opet mozno uvest pocet des. mist num = 10; // alert(num.toExponential(1)); // "1.0e+1" // metoda toPrecision - vraci bud fix nebo exp tvar - podle toho, // co je pro toto cislo vyhodnejsi. Parametr je pocet cislic (bez // exponentu) num = 99; // alert(num.toPrecision(1)); // "1e+2" // alert(num.toPrecision(2)); // "99" // typ String; // metody toString, toLocaleString a valueOf vraceji vlastni string // vlastnost length - pocet znaku v retezci // alert("ABCD".length); // 4 // // // //
prace se znaky alert("ABCD".charAt(1)); // B alert("ABCD".charCodeAt(1)); // 66 nektere prohlizece berou stringy jako pole znaku str[2]
// retezeni - metoda concat, nebo operator +
P. Štěpán
PHP
BI-PHP, výpis 9
4/6
// // // // //
metody pro ziskani podretezce slice, substr a substring 1 nebo 2 argumenty. 1. - pozice, odkud se zacina. 2. - u slice a substring - znak, pred kterym se zastavi 2. - u substr delka retezce (nemeni puvodni retezec) 2. chybi - do konce
// alert("ABCDEFGHI".slice(2,5)); // alert("ABCDEFGHI".substr(2,3));
// od znaku 2 do (ne vcetne) 5 // 2. parametr delka
// // // //
zaporne argumenty: slice - pricte k delce (pocita od konce) substr 1. pricte k delce, za druhy da nulu (prazdny retezec) chybne IE substring oba prevede na nulu
// // // //
metody pro vyhledavani v retezci indexOf a lastIndexOf alert("ADA".indexOf("A")); // 0 alert("ADA".lastIndexOf("A")); // 2 lze 2. parametr - odkud hledat
// metody nastavujici velikost písmen: toUpperCase, toLowerCase var jmeno = "aNdUlKa"; // alert(jmeno.substr(0,1).toUpperCase() + // jmeno.substr(1).toLowerCase()); // prace s regularnimi vyrazy pro typ String - metody match, // search, replace a split var pattern = /ab+c/; // jako exec v RegExp var matches = "rsabbbcxyabctu".match(pattern); // index 1. vyskytu nebo -1 var index = "rsabbbcxyabctu".search(pattern); var nahrazene = "rsabbbcxyabctu".replace(/ab+c/,"KLM"); // alert(nahrazene); // g - nahradi vsechny vyskyty var nahrazene = "rsabbbcxyabctu".replace(/ab+c/g,"KLM"); // alert(nahrazene); // ve druhem argumentu (je-li retezec) lze pouzit specialni znaky, // ktere umoznuji vkladat hodnoty, ziskane pri vyhledavani. // Napr. $n predstavuje n-ty podvyraz // druhym argumentem muze byt funkce pro specielni zpracovani // (dostava parametry z vyhledavane shody) var slova = "Prvni, Druhy , Treti ,Ctvrty"; var pole = slova.split(/ *, */); // alert(pole); P. Štěpán
PHP
BI-PHP, výpis 9
5/6
// metoda localeCompare str.localCompare(porovnavany) // > 0 pro str za, porovnavany (abecedne), 0 pro shodnost, ... // metoda fromCharCode // alert(String.fromCharCode(65,66,67,68));
// "ABCD"
// dalsi objekty // objekt Global - zakladni konstanty a metody jsou jeho metodami: // NaN, ..., parseInt, ... // // // // // //
encodeURI a encodeURIComponent - prekodovani neplatnych znaku URI adresy jen mezera na konci: alert(encodeURI("http://www.my.cz/s mezerou.html")); vsechny ("nepripustne") znaky v retezci alert(encodeURIComponent("http://www.my.cz/s mezerou.html"));
// metoda eval - interpret JavaScriptu var prikazy = "var i = 2; j = 3; alert(i+j);"; // eval(prikazy); // object Math - matematicke fce a konstanty - sin, tan, pi, ... var x = Math.e; x = Math.pi; var max = Math.max(2,17,39,1); // alert(max);
// podobne min
// alert(Math.round(1.8));
// podobne floor a ceil
var min = 1, max = 6; var kostka = Math.floor(Math.random()*(max - min + 1)+ min); alert(kostka);
P. Štěpán
PHP
BI-PHP, výpis 9
6/6