Programovanie

Používanie vstavaných objektov JavaScriptu

JavaScript obsahuje množstvo zabudovaných objektov, ktoré rozširujú flexibilitu jazyka. Ide o objekty Date, Math, String, Array a Object. Niektoré z týchto objektov sú „vypožičané“ zo špecifikácie jazyka Java, ale implementácia JavaScriptu je iná. Ak ovládate jazyk Java, mali by ste starostlivo preskúmať typy objektov zabudovaných v JavaScripte, aby ste predišli akejkoľvek zámene.

Objektový model JavaScriptu je jednoduchý. Väčšina týchto objektov sa zaoberá obsahom okna - dokumentmi, odkazmi, formulármi atď. Okrem objektov s obsahom okna podporuje JavaScript aj malú hŕstku „zabudovaných“ objektov. Tieto vstavané objekty sú k dispozícii bez ohľadu na obsah okna a fungujú nezávisle od akejkoľvek stránky, ktorú načítal váš prehliadač.

Učenie jazyka JavaScript

Tento článok je súčasťou archívu technického obsahu JavaWorld. Prečítajte si veľa informácií o programovaní v JavaScripte čítaním článkov v Séria JavaScript, nezabudnite, že niektoré informácie budú pravdepodobne zastarané. Ďalšie informácie o programovaní pomocou jazyka JavaScript nájdete v častiach „Používanie JavaScriptu a formulárov“ a „Ladenie programov JavaScript“.

Integrované objekty sú Date, Math, String, Array a Object. Každá je použitá jedinečným a nie celkom konzistentným spôsobom. Novšie verzie JavaScriptu (ako sa nachádzajú v Netscape „Atlas“, ktoré sú momentálne v beta verzii) navyše implementujú niektoré z týchto objektov odlišným spôsobom ako v Netscape 2.0. V tomto stĺpci sa budeme venovať týmto zabudovaným objektom a spôsobu ich použitia. A všimneme si zvláštnosti, s ktorými sa stretnete, keď tieto objekty použijete na svoje stránky JavaScript.

Pochopenie reťazcového objektu

Spomedzi všetkých objektov JavaScriptu je najbežnejšie používaný objekt String. V implementácii JavaScriptu 2.0 Netscape 2.0 sa nové objekty reťazcov vytvárajú implicitne pomocou priradenia premennej. Napríklad,

var myString = "Toto je reťazec";

vytvorí reťazec so zadaným textom, ktorý sa volá myString. V prostredí Netscape 2.0 neexistuje žiadny skutočný objekt nazývaný reťazec a pokus o vytvorenie inštancie nového objektu String pomocou nového príkazu spôsobí chybu, pretože reťazec (alebo reťazec) nie je definované kľúčové slovo. Vo verzii Netscape s atlasom je však String objektom dobrej viery a na vytvorenie nových reťazcov je možné použiť kľúčové slovo String. Nasledujúce dva prístupy sú povolené v Atlase, ale nie v Netscape 2.0.

var myString = nový reťazec (); myString = "Toto je reťazec";

a

var myString = nový reťazec ("Toto je reťazec");

Reťazcové objekty majú jednu vlastnosť: dĺžku. Vlastnosť length vracia dĺžku reťazca a používa syntax string.length, kde string je názov premennej reťazca. Oba nasledujúce displeje 16.

upozornenie („Toto je reťazec“. dĺžka)

a

var myString = "Toto je reťazec"; upozornenie (myString.length);

Aj keď môže existovať iba jedna vlastnosť reťazca, JavaScript podporuje veľké množstvo metód, ktoré je možné použiť s reťazcami. Tieto metódy možno zhruba rozdeliť do dvoch širokých táborov: správa reťazcov a textový formát.

Viac od JavaWorld

Chcete viac podnikových správ Java? Nechajte si doručiť bulletin JavaWorld Enterprise Java do svojej doručenej pošty.

Medzi metódy riadenia reťazcov patria podreťazec, indexOf, lastIndexOfa toLowerCase. Používajú sa na návrat alebo zmenu obsahu reťazca. Napríklad metóda podreťazca vráti zadanú časť reťazca. Metóda indexOf určuje umiestnenie znaku alebo skupiny znakov v reťazci. A metóda toLowerCase prevádza reťazec na malé písmená. (Ako si dokážete predstaviť, existuje aj toUpperCase metóda.)

Na formátovanie textu v dokumente sa nejakým špeciálnym spôsobom používajú metódy textového formátu, ktoré sa poskytujú ako alternatíva k použitiu značiek HTML na rovnaký účel. Medzi tieto metódy patrí veľké, malé, sup, sub, ukotvenie, prepojenie a blikanie.

Metódy reťazcov je možné použiť priamo na reťazce alebo na premenné, ktoré obsahujú reťazce. Metódy vždy používajú otvorenú a uzavretú zátvorku, aj keď metóda nepoužíva parametre. Napríklad na prevedenie textu na veľké písmená použijete jednu z nasledujúcich možností:

var tempVar = "tento text je teraz písaný veľkými písmenami" .toUpperCase ();

alebo

var myString = "tento text je teraz písaný veľkými písmenami"; var tempVar = myString.toUpperCase ();

V Netscape 2.0 je iba jeden objekt String a sú z neho vytvorené všetky reťazce. Naopak, reťazce sú v Atlase prvotriednymi objektmi a s každým novým reťazcom sa zaobchádza ako so samostatným objektom. Chovanie reťazcov v jednom objekte v prostredí Netscape 2.0 môže spôsobiť jemné vedľajšie účinky. Vezmime si nasledujúci krátky segment skriptu. Vytvoria sa dva reťazce: reťazec1 a string2. K vlastnosti string1 je priradená nová vlastnosť (nazývaná extra). Výstražná správa zatiaľ ukazuje, že vlastnosť teraz tiež patrí do reťazca2.

 string1 = "toto je reťazec 1" string2 = "toto je reťazec 2" string1.extra = upozornenie "nová vlastnosť" (string2.extra) 

Technicky povedané, reťazce sú v jazyku JavaScript „nemenné“. To znamená, že obsah reťazca je statický a nemožno ho zmeniť. V prostredí Netscape 2.0 je JavaScript schopný upravovať reťazec iba tak, že preň vytvorí nové miesto v pamäti. Z tohto dôvodu je skript, ktorý mnohokrát upravuje reťazec, náchylný na chyby pamäte. Pri každej zmene reťazca vytvorí JavaScript pre novú verziu v pamäti nové umiestnenie. Nové reťazce sa vytvárajú skôr, ako sa uskutoční zber odpadu, aby sa starý reťazec zničil. JavaScript nakoniec použije všetku svoju dostupnú pamäť a dôjde k chybe „nedostatok pamäte“.

Klasický príklad tohto problému možno nájsť v populárnych JavaScriptoch „posúvače správ“, kde sa správa posúva v stavovom riadku alebo v textovom poli. Pri každom prechode posúvač predefinuje premennú reťazca, ktorá sa zobrazí. Pamäť sa nakoniec vyčerpá, pretože JavaScript vytvára pri každom prechode nové inštancie reťazca. Napríklad nasledujúci skript nakoniec (skôr na niektorých platformách, napríklad Windows 3.1) nakoniec spôsobí chybu „nedostatok pamäte“:

 počet varov = 0; var text = "Toto je test scrollovača JavaScriptu."; scroll (); function scroll () {var myString = text.substring (count, text.length) + text.substring (0, count) window.status = myString if (count <text.length) count ++; else count = 0; setTimeout ("scroll ()", 333); // 333ms je minimálne oneskorenie pre Netscape 2.0} 

Jednoduché prepisovanie zabráni problémom s vytváraním nových blokov pamäte. Odstráňte priradenie premennej myString a analyzujte text priamo do stavového riadku pomocou súboru window.status.

window.status = text.substring (count, text.length) + text.substring (0, Count)

(Zatiaľ čo sa vyššie uvedený prístup vyhýba problémom s replikáciou reťazcových objektov JavaScriptu, stále dochádza k únikom pamäte z dôvodu použitia servera metóda setTimeout. Počas mnohých iterácií - zvyčajne niekoľko tisíc a viac - setTimeout spotrebuje všetku dostupnú pamäť a nakoniec JavaScript zobrazí správu „out of memory“.)

Pre vašu informáciu, tu sú metódy a vlastnosti použité s objektom reťazca JavaScriptu:

Vlastnosti reťazca

dĺžkaDĺžka šnúrky

Metódy reťazcov

KotvaVytvorí pomenovanú kotvu (hypertextový cieľ)
veľkýNastaví text na veľký
blikaťNastaví blikanie textu
tučneNastaví text na tučné písmo
charAtVráti znak na určenej pozícii
opravenýNastaví text vo fonte s pevnou výškou
farba písmaNastavuje farbu písma
veľkosť písmaNastavuje veľkosť písma
indexOfVráti prvý výskyt znaku x začínajúci od polohy y
kurzívaNastaví text na kurzívu
lastIndexOfVráti posledný výskyt znaku x začínajúci od polohy y
odkazVytvorí hypertextový odkaz
malýNastaví text na malý
štrajkNastaví prečiarknutie textu
podčNastaví text na dolný index
podreťazecVráti časť reťazca
súpNastaví text na horný index
toLowerStringSkonvertuje reťazec na malé písmená
toUpperStringSkonvertuje reťazec na veľké písmená

Používanie JavaScriptu ako vedeckej kalkulačky

Matematický objekt JavaScriptu poskytuje pokročilé aritmetické a trigonometrické funkcie a rozširuje sa o základné aritmetické operátory JavaScriptu (plus, mínus, násobenie, delenie). Matematický objekt v JavaScripte je požičaný z Java. V skutočnosti je implementácia objektu Math v JavaScripte paralelná s triedou Math v Jave, až na to, že objekt Math JavaScriptu ponúka menej metód.

Vlastnosti matematického objektu JavaScriptu sa považujú za konštanty. V skutočnosti sú názvy vlastností veľkými písmenami, a to podľa obvyklej konvencie písania veľkých písmen premenných konštánt. Tieto vlastnosti vracajú často používané hodnoty vrátane pi a druhá odmocnina z 2. Matematické metódy sa používajú v matematických a trigonometrických výpočtoch. Medzi užitočné metódy matematických objektov patria ceil, floor, pow, exp (exponent), max, min, round a random. (Náhodné je však k dispozícii iba pri použití platformy X Window.)

Matematický objekt je statický, takže aby ste ho mohli používať, nemusíte vytvárať nový matematický objekt. Pre prístup k vlastnostiam a metóde matematického objektu stačí zadať matematický objekt spolu s požadovanou metódou alebo vlastnosťou. Napríklad na vrátenie hodnoty pi, používaš:

var pi = Math.PI;

Podobne pri použití matematickej metódy uvediete jej názov a parametre, ktoré chcete použiť. Napríklad zaokrúhliť hodnotu pi, použili by ste:

var pi = Math.PI; var pieAreRound = Math.round (pi); // zobrazí 3

Upozorňujeme, že pre každú matematickú metódu / vlastnosť, ktorú chcete použiť, musíte určiť matematický objekt podľa názvu. JavaScript nerozpozná kľúčové slová PI a zaokrúhli ich úplne sám. Výnimka: môžete použiť s príkaz na priradenie názvov metód a vlastností k matematickému objektu. Táto technika je praktickým šetričom priestoru, keď musíte použiť niekoľko matematických vlastností a metód. Predchádzajúci príklad je možné zapísať ako

s (matematikou) {var pi = PI; var pieAreRound = guľatý (pi); upozornenie (pieAreRound)}

Pre vašu informáciu, tu sú vlastnosti a metódy podporované matematickým objektom JavaScriptu.

Matematické vlastnosti

EEulerova konštanta
LN2Prirodzený logaritmus 2
LN10Prirodzený logaritmus 10
LOG2EZákladný 2 logaritmus napr
LOG10EZákladný 10 logaritmus napr
PIČíselný ekvivalent PI: 3,14 atď.
SQRT1_2Druhá odmocnina z polovice
SQRT2Druhá odmocnina z 2

Matematické metódy

absVráti absolútnu hodnotu čísla
acosVráti kosínusový kosínus čísla
ako vVráti sínusový oblúk čísla
opálenieVráti dotyčnicu oblúka čísla
stropVráti najmenšie celé číslo väčšie alebo rovné číslu
cosVráti kosínus čísla
expVráti e (Eulerova konštanta) k sile čísla
poschodieVráti najväčšie celé číslo menšie alebo rovné jeho argumentu
logVráti prirodzený logaritmus (základ e) čísla
maxVráti vyššiu z dvoch hodnôt
minVráti nižšiu z dvoch hodnôt
powVráti hodnotu niekoľkonásobku určeného výkonu
náhodnýVráti náhodné číslo (iba platformy X)
okrúhlyVráti číslo zaokrúhlené na najbližšiu celú hodnotu
hriechVráti sínus čísla
štvorcovýVráti druhú odmocninu čísla
opálenieVráti dotyčnicu čísla

Žiadam dátum o JavaScript

Java si tiež požičiava objekt Date, ktorý je možné v JavaScripte použiť na určenie aktuálneho času a dátumu. Populárna JavaScriptová aplikácia objektu Date zobrazuje digitálne hodiny v textovom poli. Skript používa objekt Date na aktualizáciu hodín raz za sekundu. Na vykonanie matematiky dátumu tiež používate objekt Date. Napríklad váš skript môže určiť počet dní medzi dneškom a určitým budúcim dátumom. Môžete to použiť na zobrazenie „odpočítavania“, ako je napríklad počet dní zostávajúcich do veľkého predaja vašej spoločnosti.

JavaScript zaobchádza s objektom Date ako s triedou konštruktorov. Ak chcete použiť Dátum, musíte vytvoriť nový objekt Dátum; potom môžete použiť rôzne metódy dátumu na získanie a nastavenie dátumov. (Objekt Date nemá žiadne vlastnosti.) Ak ste oboznámení s triedou Date v Jave, vlastnosti objektu JavaScript Date sú väčšinou rovnaké. Najbežnejšie používané metódy sú dostať metódy, ktoré získavajú čas a dátum hodnoty v objekte Date. Ide o tieto metódy:

  • getHours () - Vráti hodinu
  • getMinutes () - Vráti minúty
  • getSeconds () - Vráti sekundy
  • getYear () - Vráti rok („96“ je 1996)
  • getMonth () - Vráti mesiac („0“ je január)
  • getDate () - Vráti deň v mesiaci
  • getDay () - Vráti deň v týždni („0“ je nedeľa)

(Objekt Date v jazyku JavaScript tiež umožňuje nastavenie času a dátumu objektu Date, ale zriedka sa používajú.)

Vytvorenie nového objektu Date môže mať niekoľko podôb. Ak chcete vrátiť objekt obsahujúci aktuálny dátum a čas, použijete objekt Date bez parametrov. V nasledujúcom, date_obj je nový objekt obsahujúci hodnotu aktuálneho dátumu a času nastavenú systémovými hodinami počítača.

var date_obj = nový Dátum ();

Alternatívne môžete zadať daný dátum a čas ako súčasť konštruktora dátumu. Je povolená ktorákoľvek z týchto metód - obidve nastavili nový objekt dátumu na 1. januára 1997 o polnoci miestneho času.

var date_obj = nový dátum ("1. január 1997 00:00:00")

a

var date_obj = nový dátum (97, 0, 1, 12, 0, 0)

Ak chcete použiť metódu Date, pridajte túto metódu k objektu dátumu, ktorý ste predtým vytvorili. Napríklad na vrátenie aktuálneho roku použite:

var now = new Date (); var yearNow = now.getYear ();

Pre vašu informáciu, tu sú metódy podporované objektom Date v jazyku JavaScript.

$config[zx-auto] not found$config[zx-overlay] not found