Programiranje

Uporaba vgrajenih predmetov JavaScript

JavaScript ponuja številne vgrajene predmete, ki širijo prilagodljivost jezika. Ti predmeti so datum, matematika, niz, matrika in objekt. Nekateri od teh objektov so "izposojeni" iz specifikacije jezika Java, vendar jih JavaScript izvaja drugače. Če poznate Javo, boste želeli natančno preučiti vgrajene vrste objektov JavaScript, da se izognete zmedi.

Objektni model JavaScript je preprost. Večina teh predmetov se ukvarja z vsebino oken - dokumenti, povezave, obrazci itd. Poleg predmetov z okensko vsebino JavaScript podpira tudi majhno peščico "vgrajenih" predmetov. Ti vgrajeni predmeti so na voljo ne glede na vsebino okna in delujejo neodvisno od strani, ki jo je brskalnik naložil.

Učenje JavaScripta

Ta članek je del arhiva tehnične vsebine JavaWorld. Z branjem člankov v. Se lahko veliko naučite o programiranju JavaScript Serija JavaScript, ne pozabite, da bodo nekatere informacije verjetno zastarele. Glejte "Uporaba JavaScript in obrazcev" in "Odpravljanje napak programov JavaScript" za več informacij o programiranju z JavaScriptom.

Vgrajeni predmeti so Date, Math, String, Array in Object. Vsak se uporablja na edinstven in ne povsem dosleden način. Poleg tega novejše različice JavaScripta (kot jih najdemo v Netscape "Atlas", trenutno v različici beta) izvajajo več teh objektov na drugačen način kot v Netscape 2.0. V tem stolpcu bomo obravnavali te vgrajene predmete in kako jih uporabiti. In zabeležili bomo nenavadnosti, s katerimi se boste srečali, ko boste te predmete uporabili na svojih straneh JavaScript.

Razumevanje predmeta string

Med vsemi objekti JavaScript je najpogosteje uporabljen objekt String. V izvedbi JavaScript Netscape 2.0 se novi nizni objekti implicitno ustvarijo z dodelitvijo spremenljivke. Na primer,

var myString = "To je niz";

ustvari niz z navedenim besedilom, imenovan myString. V Netscape 2.0 dejansko ni predmeta, imenovanega niz, in poskus instanciranja novega predmeta String z novim stavkom povzroči napako, saj String (ali niz) ni definirana ključna beseda. V Atlasovi različici Netscape pa je String verodostojen predmet, ključno besedo String pa lahko uporabimo za ustvarjanje novih nizov. Naslednja dva pristopa sta dovoljena v Atlasu, v Netscape 2.0 pa ne.

var myString = nov niz (); myString = "To je niz";

in

var myString = new String ("To je niz");

Nizni predmeti imajo eno lastnost: dolžina. Lastnost length vrne dolžino niza in uporablja sintakso string.length, kjer je niz ime spremenljivke niza. Oba naslednja zaslona 16.

opozorilo ("To je niz" .length)

in

var myString = "To je niz"; opozorilo (myString.length);

Čeprav je lahko samo ena lastnost niza, JavaScript podpira veliko število metod, ki jih je mogoče uporabiti z nizi. Te metode lahko približno razdelimo na dva široka tabora: upravljanje nizov in obliko besedila.

Več iz JavaWorlda

Želite več novic o podjetju Java? V svojo mapo »Prejeto« dobite glasilo JavaWorld Enterprise Java.

Metode upravljanja nizov vključujejo podniz, indeks, lastIndexOf, in toLowerCase. Uporabljajo se za vrnitev ali spreminjanje vsebine niza na nek način. Na primer, metoda podniza vrne določen del niza. Metoda indexOf določa lokacijo znaka ali skupine znakov v nizu. In metoda toLowerCase pretvori niz v male črke. (Kot si lahko predstavljate, obstaja tudi toUpperCase metoda.)

Načini oblikovanja besedila se uporabljajo za oblikovanje besedila v dokumentu na nek poseben način in so alternativa uporabi oznak HTML za isti namen. Te metode vključujejo veliko, majhno, sup, sub, sidro, povezavo in utripanje.

Metode nizov se lahko uporabljajo neposredno v nizih ali spremenljivkah, ki vsebujejo nize. Metode vedno uporabljajo odprte in zaprte oklepaje, tudi če metoda ne uporablja parametrov. Na primer, če želite besedilo pretvoriti v velike črke, uporabite eno od naslednjega:

var tempVar = "to besedilo je zdaj z velikimi črkami" .toUpperCase ();

ali

var myString = "to besedilo je zdaj z velikimi črkami"; var tempVar = myString.toUpperCase ();

V Netscape 2.0 je samo en objekt String in vsi nizi so ustvarjeni iz njega. Nasprotno pa so nizi v Atlasu prvovrstni objekti in vsak nov niz je obravnavan kot ločen predmet. Obnašanje nizov z enim predmetom v Netscape 2.0 lahko povzroči nekaj subtilnih stranskih učinkov. Vzemite odsek kratkega skripta, ki sledi. Ustvari se dva niza: niz1 in niz2. String1 je dodeljena nova lastnost (imenovana ekstra). Kljub temu opozorilno sporočilo kaže, da lastnost zdaj pripada tudi nizu2.

 string1 = "to je niz 1" string2 = "to je niz 2" string1.extra = opozorilo "nova lastnost" (string2.extra) 

Tehnično gledano so nizi v JavaScript "nespremenljivi". To pomeni, da je vsebina niza statična in je ni mogoče spremeniti. V Netscape 2.0 lahko JavaScript spreminja niz samo tako, da zanj ustvari novo lokacijo v pomnilniku. Zaradi tega je skript, ki večkrat spremeni niz, nagnjen k pomnilniškim napakam. Vsakič, ko se niz spremeni, JavaScript ustvari novo lokacijo v pomnilniku za novo različico. Novi nizi se ustvarijo pred zbiranjem smeti, da se uniči stari niz. Sčasoma JavaScript uporabi ves razpoložljivi pomnilnik in pride do napake "zmanjkalo pomnilnika".

Klasičen primer te težave je razviden iz priljubljenih "drsnikov za sporočila", kjer se sporočilo pomika v vrstici stanja ali besedilnem polju. Za vsak prehod drsnik znova definira prikazano spremenljivko niza. Pomnilnik se sčasoma izprazni, ker JavaScript z vsakim prehodom ustvari nove primerke niza. Na primer, naslednji skript bo sčasoma (prej na nekaterih platformah, kot je Windows 3.1) povzročil napako "zmanjkalo pomnilnika":

 var count = 0; var text = "To je preizkus drsnika JavaScript."; pomikanje (); scroll () {var myString = text.substring (count, text.length) + text.substring (0, count) window.status = myString if (count <text.length) count ++; sicer šteje = 0; setTimeout ("scroll ()", 333); // 333ms je najmanjša zakasnitev za Netscape 2.0} 

Preprosto prepisovanje se izogne ​​problemu ustvarjanja novih blokov pomnilnika. Izbrišite dodelitev spremenljivke myString in besedilo razčlenite neposredno v statusno vrstico z uporabo window.status.

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

(Medtem ko se zgornji pristop izogiba težavi s podvajanjem nizovnega predmeta JavaScript, še vedno pride do uhajanja pomnilnika zaradi metoda setTimeout. V mnogih ponovitvah - običajno več tisoč ali več - bo setTimeout porabil ves razpoložljiv pomnilnik in sčasoma bo JavaScript prikazal sporočilo "out of memory".)

Za referenco so tu metode in lastnosti, ki se uporabljajo z nizovnim objektom JavaScript:

Lastnosti niza

dolžinaDolžina vrvice

Nizne metode

sidroUstvari imenovano sidro (cilj hiperteksta)
velikBesedilo nastavi na veliko
utripajteBesedilo nastavi utripati
krepkoNastavi krepko besedilo
charAtVrne znak na določenem položaju
določenNastavi besedilo v pisavi s fiksno višino
fontcolorNastavi barvo pisave
velikost pisaveNastavi velikost pisave
indeksVrne prvi pojav znaka x, začenši s položaja y
ležečeNastavi ležeče besedilo
lastIndexOfVrne zadnji pojav znaka x, začenši s položaja y
povezavaUstvari hiperpovezavo
majhnaNastavi besedilo na majhno
stavkaNastavi besedilo za črtanje
podNastavi besedilo na podpis
podnizVrne del niza
supBesedilo nastavi na nadpis
toLowerStringPretvori niz v male črke
toUpperStringPretvori niz v velike črke

Uporaba JavaScripta kot znanstvenega kalkulatorja

JavaScript-ov objekt Math ponuja napredne aritmetične in trigonometrične funkcije, ki se razširijo na osnovne aritmetične operaterje JavaScript (plus, minus, pomnoži, deli). Objekt Math v JavaScript je izposojen iz Jave. Dejansko je izvedba predmeta Math v JavaScriptu tesno podobna razredu Math v Javi, le da objekt JavaScript Math ponuja manj metod.

Lastnosti predmeta Java Math se obravnavajo kot konstante. Dejansko so imena lastnosti v velikih črkah, po običajnem dogovoru z velikimi črkami spremenljivk konstant. Te lastnosti vrnejo pogosto uporabljene vrednosti, vključno z pi in kvadratni koren iz 2. Matematične metode se uporabljajo pri matematičnih in trigonometričnih izračunih. Priročne metode matematičnih predmetov vključujejo strop, tla, prah, exp (eksponent), max, min, okrogle in naključne. (Vendar je naključje na voljo samo pri uporabi platforme X Window.)

Objekt Math je statičen, zato vam za njegovo uporabo ni treba ustvariti novega predmeta Math. Za dostop do lastnosti in metode predmeta Math preprosto določite objekt Math, skupaj z želeno metodo ali lastnostjo. Na primer, da vrnete vrednost pi, uporabljaš:

var pi = Math.PI;

Podobno za uporabo matematične metode navedete ime metode skupaj s parametri, ki jih želite uporabiti. Na primer, da zaokrožite vrednost pi, bi uporabili:

var pi = Math.PI; var pieAreRound = Math.round (pi); // prikaže 3

Upoštevajte, da morate za vsako metodo / lastnost Math, ki jo želite uporabiti, navesti objekt Math po imenu. JavaScript ne prepozna ključnih besed PI in jih zaokroži sam. Izjema: lahko uporabite s stavek za povezovanje imen metod in lastnosti z objektom Math. Ta tehnika je priročna prihranek prostora, ko morate uporabiti več matematičnih lastnosti in metod. Prejšnji primer lahko zapišemo kot

z (Matematika) {var pi = PI; var pieAreRound = krog (pi); opozorilo (pieAreRound)}

Za referenco so tukaj lastnosti in metode, ki jih podpira objekt Math JavaScript.

Matematične lastnosti

EEulerjeva konstanta
LN2Naravni logaritem 2
LN10Naravni logaritem 10
LOG2ELogaritem osnovne 2 e
LOG10EOsnovni 10 logaritem e
PIŠtevilski ekvivalent PI: 3,14 itd.
SQRT1_2Kvadratni koren polovice
SQRT2Kvadratni koren 2

Matematične metode

absVrne absolutno vrednost števila
acosVrne arc kosinus števila
kot vVrne lok sinus števil
atanVrne tangens loka števila
stropVrne najmanjše celo število, večje ali enako številu
cosVrne kosinus števila
expVrne e (Eulerjevo konstanto) v potenco števila
tlaVrne največje celo število, manjše ali enako njegovemu argumentu
logVrne naravni logaritem (osnova e) števila
maksVrne večjo od dveh vrednosti
minVrne manjšo od dveh vrednosti
prahVrne vrednost števila pomnoženih z določeno močjo
naključenVrne naključno število (samo X-platforme)
okroglaVrne število, zaokroženo na najbližjo celo vrednost
grehVrne sinus številke
sqrtVrne kvadratni koren števila
porjavelaVrne tangens števila

Vprašanje JavaScript za datum

Java si je izposodil tudi objekt Date, ki ga lahko v JavaScript uporabite za določanje trenutnega časa in datuma. Priljubljena aplikacija JavaScript predmeta Date prikazuje digitalno uro v besedilnem polju. Skript uporablja objekt Date za posodobitev ure enkrat na sekundo. Za izračun datuma uporabite tudi objekt Date. Na primer, vaš skript lahko določi število dni med zdaj in določenim prihodnjim datumom. S tem lahko prikažete "odštevanje", na primer število dni do velike prodaje vašega podjetja.

JavaScript obravnava objekt Date kot razred konstruktorja. Če želite uporabiti Date, morate ustvariti nov objekt Date; lahko nato uporabite različne metode Date, da dobite in nastavite datume. (Objekt Date nima lastnosti.) Če poznate razred Date v Javi, boste našli lastnosti predmeta JavaScript Date večinoma enake. Najpogosteje uporabljene metode so dobili metode, ki pridobijo čas in datum vrednosti v objektu Date. Te metode so:

  • getHours () - vrne uro
  • getMinutes () - vrne zapisnik
  • getSeconds () - vrne sekunde
  • getYear () - vrne leto ("96" je 1996)
  • getMonth () - vrne mesec ("0" je januar)
  • getDate () - vrne dan v mesecu
  • getDay () - vrne dan v tednu ("0" je nedelja)

(JavaScript-ov predmet Date omogoča tudi nastavitev ure in datuma objekta Date, vendar se ta redko uporabljata.)

Konstruiranje novega predmeta Date ima lahko več oblik. Če želite vrniti objekt, ki vsebuje trenutni datum in uro, uporabite objekt Date brez parametrov. V nadaljevanju, date_obj je nov objekt, ki vsebuje vrednost trenutnega datuma in ure, kot jo nastavi sistemska ura računalnika.

var date_obj = nov datum ();

Kot del konstruktorja datuma lahko določite tudi datum in uro. Vsaka od teh metod je dovoljena - obe nastavita nov datumski objekt na 1. januar 1997 ob polnoči po lokalnem času.

var date_obj = nov datum ("1. januar 1997 00:00:00")

in

var date_obj = nov datum (97, 0, 1, 12, 0, 0)

Če želite uporabiti metodo Date, jo dodajte datumu, ki ste ga prej ustvarili. Na primer za vrnitev tekočega leta uporabite:

var zdaj = nov datum (); var yearNow = now.getYear ();

Za referenco so tu metode, ki jih podpira objekt Date JavaScript.

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