Programmēšana

Izmantojot JavaScript iebūvētos objektus

JavaScript spēlē vairākus iebūvētus objektus, kas paplašina valodas elastību. Šie objekti ir datums, matemātika, virkne, masīvs un objekts. Vairāki no šiem objektiem ir "aizņemti" no Java valodas specifikācijas, taču JavaScript to ieviešana ir atšķirīga. Ja jums ir zināma Java versija, ieteicams rūpīgi pārbaudīt JavaScript iebūvētos objektu tipus, lai izvairītos no neskaidrībām.

JavaScript objekta modelis ir vienkāršs. Lielākā daļa šo objektu nodarbojas ar logu saturu - dokumentiem, saitēm, veidlapām utt. Papildus loga satura objektiem JavaScript atbalsta nelielu saujiņu "iebūvēto" objektu. Šie iebūvētie objekti ir pieejami neatkarīgi no loga satura un darbojas neatkarīgi no pārlūkprogrammas ielādētās lapas.

Mācīties JavaScript

Šis raksts ir daļa no JavaWorld tehniskā satura arhīva. Jūs varat daudz uzzināt par JavaScript programmēšanu, lasot rakstus JavaScript sērija, tikai paturiet prātā, ka daļa informācijas, iespējams, ir novecojusi. Plašāku informāciju par programmēšanu ar JavaScript skatiet sadaļā "JavaScript un veidlapu izmantošana" un "JavaScript programmu atkļūdošana".

Iebūvētie objekti ir datums, matemātika, virkne, masīvs un objekts. Katrs no tiem tiek izmantots unikālā un ne visai konsekventā veidā. Turklāt ar jaunākām JavaScript versijām (kas atrodamas Netscape "Atlas", kas pašlaik ir beta versijā) vairāki no šiem objektiem tiek īstenoti citādi nekā Netscape 2.0. Šajā slejā mēs pievērsīsimies šiem iebūvētajiem objektiem un to izmantošanai. Un mēs atzīmēsim dīvainības, ar kurām jūs sastopaties, lietojot šos objektus savās JavaScript lapās.

Izpratne par virknes objektu

No visiem JavaScript objektiem visbiežāk tiek izmantots objekts String. Netscape 2.0 JavaScript ieviešanā jauni virknes objekti tiek izveidoti netieši, izmantojot mainīgo piešķiršanu. Piemēram,

var myString = "Šī ir virkne";

izveido virkni ar norādīto tekstu, ko sauc myString. Programmā Netscape 2.0 nav reāla objekta, ko sauc par virkni, un mēģinājums instantizēt jaunu virknes objektu, izmantojot jauno paziņojumu, rada kļūdu, jo virkne (vai virkne) nav definēts atslēgvārds. Tomēr Netscape Atlas versijā virkne ir labticīgs objekts, un atslēgvārdu String var izmantot, lai izveidotu jaunas virknes. Atlasē ir atļautas šādas divas pieejas, bet Netscape 2.0 nav atļauts.

var myString = jauna virkne (); myString = "Šī ir virkne";

un

var myString = jauna virkne ("Šī ir virkne");

Stīgu objektiem ir viena īpašība: garums. Rekvizīts garums atgriež virknes garumu un izmanto sintaksi string.length, kur virkne ir virknes mainīgā nosaukums. Abi šie rādījumi 16.

brīdinājums ("Šī ir virkne". garums)

un

var myString = "Šī ir virkne"; trauksme (myString.length);

Lai gan var būt tikai viens virknes rekvizīts, JavaScript atbalsta lielu skaitu metožu, kuras var izmantot ar virknēm. Šīs metodes var aptuveni sadalīt divās lielās grupās: virkņu pārvaldība un teksta formāts.

Vairāk no JavaWorld

Vēlaties vairāk Java uzņēmumu jaunumus? Saņemiet JavaWorld Enterprise Java biļetenu, kas tiek piegādāts iesūtnē.

Stīgu pārvaldības metodes ietver apakšvirkne, indexOf, lastIndexOf, un toLowerCase. Tie tiek izmantoti, lai kaut kādā veidā atgrieztu vai mainītu virknes saturu. Piemēram, apakšvirknes metode atgriež noteiktu virknes daļu. Metode indexOf nosaka rakstzīmes vai rakstzīmju grupas atrašanās vietu virknē. Un metode toLowerCase pārveido virkni par mazo burtu. (Kā jūs varat iedomāties, ir arī a toUpperCase metodi.)

Teksta formāta metodes tiek izmantotas dokumenta teksta formatēšanai kaut kādā īpašā veidā, un tās tiek piedāvātas kā alternatīvas HTML tagu izmantošanai tam pašam mērķim. Šīs metodes ietver lielu, mazu, sup, sub, enkuru, saiti un mirgo.

Stīgu metodes var izmantot tieši virknēm vai mainīgajiem, kas satur virknes. Metodēs vienmēr tiek izmantotas atvērtas un slēgtas iekavas, pat ja metodē netiek izmantoti parametri. Piemēram, lai tekstu pārveidotu lielajiem burtiem, izmantojiet kādu no šīm iespējām:

var tempVar = "šis teksts tagad ir lielais burts" .toUpperCase ();

vai

var myString = "šis teksts tagad ir lielais burts"; var tempVar = myString.toUpperCase ();

Netscape 2.0 ir tikai viens objekts String, un visas virknes tiek izveidotas no tā. Un otrādi, virknes ir pirmās klases objekti Atlas, un katra jauna virkne tiek uzskatīta par atsevišķu objektu. Netscape 2.0 virkņu viena objekta izturēšanās var izraisīt smalkas blakusparādības. Paņemiet sekojošo īso skriptu segmentu. Tiek izveidotas divas virknes: virkne1 un virkne2. 1. virknei tiek piešķirts jauns rekvizīts (saukts par extra). Tomēr brīdinājuma ziņojums parāda, ka īpašums tagad pieder arī virknei2.

 string1 = "šī ir virkne 1" string2 = "šī ir virkne 2" string1.extra = "jauns rekvizīts" brīdinājums (string2.extra) 

Tehniski runājot, virknes JavaScript ir "nemaināmas". Tas ir, virknes saturs ir statisks, un to nevar mainīt. Netscape 2.0 JavaScript spēj modificēt virkni, tikai izveidojot tai jaunu vietu atmiņā. Tāpēc skripts, kas daudzkārt modificē virkni, ir pakļauts atmiņas kļūdām. Katru reizi, kad virkne tiek mainīta, JavaScript jaunajai versijai izveido jaunu vietu atmiņā. Pirms atkritumu savākšanas tiek izveidotas jaunas virknes, lai iznīcinātu veco virkni. Galu galā JavaScript izmanto visu pieejamo atmiņu, un rodas kļūda “atmiņā nav”.

Klasisks šīs problēmas piemērs ir redzams populārajos JavaScript "ziņojumu ritinātājos", kur ziņa ritina statusa joslā vai tekstlodziņā. Katrai pārejai ritinātājs no jauna definē parādīto virknes mainīgo. Atmiņa galu galā ir iztukšota, jo JavaScript ar katru nodošanu rada jaunus virknes gadījumus. Piemēram, šāds skripts galu galā (ātrāk dažās platformās, piemēram, Windows 3.1) izraisīs kļūdu “Atmiņas trūkums”:

 var skaits = 0; var text = "Šis ir JavaScript ritināšanas tests."; ritināt (); funkcija ritiniet () {var myString = text.substring (skaits, teksts.length) + text.substring (0, skaits) window.status = myString if (skaits <text.length) skaits ++; cits skaitīt = 0; setTimeout ("ritiniet ()", 333); // 333ms ir minimālā Netscape 2.0 aizkave} 

Vienkārša pārrakstīšana ļauj izvairīties no jaunu atmiņas bloku izveidošanas. Izdzēsiet mainīgā piešķiršanu myString un parsējiet tekstu tieši statusa joslā, izmantojot window.status.

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

(Lai gan ar iepriekšminēto pieeju tiek novērsta JavaScript virknes objektu replikācijas problēma, atmiņas noplūde joprojām notiek, jo tiek izmantota setTimeout metode. Vairākos atkārtojumos - parasti vairākos tūkstošos vai vairāk - setTimeout iztērēs visu pieejamo atmiņu, un galu galā JavaScript parādīs ziņojumu “Atmiņā nav vietas”.)

Jūsu zināšanai šeit ir metodes un īpašības, kas tiek izmantotas ar JavaScript virknes objektu:

Stīgu īpašības

garumsStīgas garums

Stīgu metodes

enkursIzveido nosaukumu enkuru (hiperteksta mērķis)
lielsIestata tekstu lielam
mirgotIestata, ka teksts mirgo
treknrakstāIestata tekstu treknrakstā
rakstursAtgriež rakstzīmi noteiktā vietā
fiksētsIestata tekstu fiksēta soļa fonā
fontu krāsaIestata fonta krāsu
fonta izmērsIestata fonta lielumu
indexOfAtgriež rakstzīmes x pirmo sastopamību, sākot no pozīcijas y
kursīvsIestata tekstu kursīvā
lastIndexOfAtgriež rakstzīmes x pēdējo sastopamību, sākot no pozīcijas y
saiteIzveido hipersaiti
mazsIestata tekstu mazam
streiksIestata tekstu svītrot
apakšnodaļaIestata tekstu apakšindeksam
apakšvirkneAtgriež virknes daļu
supIestata tekstu virsrakstā
toLowerStringStīgu pārveido par mazajiem burtiem
toUpperStringPārvērš virkni lielajiem burtiem

JavaScript izmantošana kā zinātniskais kalkulators

JavaScript Math objekts nodrošina uzlabotas aritmētiskās un trigonometriskās funkcijas, paplašinot JavaScript pamata aritmētiskos operatorus (plus, mīnus, reizināt, dalīt). Matemātiskais objekts JavaScript valodā ir aizgūts no Java. Patiesībā Math objekta ieviešana JavaScript cieši līdzinās Java matemātikas klasei, izņemot to, ka JavaScript Math objekts piedāvā mazāk metožu.

JavaScript matemātisko objektu īpašības tiek uzskatītas par konstantēm. Faktiski īpašību nosaukumi ir lielie, ievērojot parasto mainīgo konstanšu lielo burtu lietošanu. Šīs īpašības atgriež bieži izmantotās vērtības, tostarp pi un kvadrātsakne no 2. Matemātikas un trigonometriskos aprēķinos tiek izmantotas matemātikas metodes. Parocīgās matemātisko objektu metodes ietver griestu, grīdu, koeficientu, eksponentu (eksponentu), maksimumu, min, apaļo un nejaušo. (Tomēr nejaušība ir pieejama tikai tad, ja izmantojat X Window platformu.)

Matemātikas objekts ir statisks, tāpēc, lai to izmantotu, nav jāizveido jauns matemātikas objekts. Lai piekļūtu Math objekta īpašībām un metodei, jums vienkārši jānorāda Math objekts kopā ar vēlamo metodi vai rekvizītu. Piemēram, lai atgrieztu vērtību pi, jūs izmantojat:

var pi = Math.PI;

Līdzīgi, lai izmantotu matemātikas metodi, jums jānorāda metodes nosaukums un parametri, kurus vēlaties izmantot. Piemēram, lai noapaļotu vērtību pi, jūs izmantojat:

var pi = Math.PI; var pieAreRound = Math.round (pi); // parāda 3

Ņemiet vērā, ka katrai izmantotajai matemātikas metodei / rekvizītam jums jānorāda objekts Matemātika. JavaScript neatpazīst atslēgvārdus PI un noapaļo visus pats. Izņēmums: jūs varat izmantot ar paziņojums, lai metožu un īpašību nosaukumus saistītu ar objektu Math. Šis paņēmiens ir ērts vietas taupītājs, kad jāizmanto vairākas matemātikas īpašības un metodes. Iepriekšējo piemēru var rakstīt kā

ar (Matemātika) {var pi = PI; var pieAreRound = apaļa (pi); brīdinājums (pieAreRound)}

Jūsu zināšanai šeit ir JavaScript Math objekta atbalstītās īpašības un metodes.

Matemātikas īpašības

EEulera konstante
LN22 dabiskais logaritms
LN1010 dabiskais logaritms
LOG2E2. bāzes logaritms e
LOG10EBāzes 10 logaritms e
PIPI skaitliskais ekvivalents: 3,14 utt.
SQRT1_2Pusītes kvadrātsakne
SQRT2Kvadrātsakne no 2

Matemātikas metodes

absAtgriež skaitļa absolūto vērtību
acosAtgriež skaitļa loka kosinusu
Atgriež skaitļa loka sinusu
atanAtgriež skaitļa loka pieskārienu
griestiAtgriež mazāko skaitli, kas ir lielāks vai vienāds ar skaitli
cosAtgriež skaitļa kosinusu
expAtgriež e (Eulera konstante) skaitļa jaudu
stāvāAtgriež lielāko skaitli, kas mazāks vai vienāds ar argumentu
žurnālsAtgriež skaitļa naturālo logaritmu (bāzes b)
maksAtgriež lielāko no divām vērtībām
minAtgriež mazāko no divām vērtībām
PowAtgriež skaitļa vērtību, kas reizināta ar norādīto jaudu
nejaušsAtgriež nejaušu skaitli (tikai X platformās)
raundsAtgriež skaitli, noapaļotu līdz tuvākajai veselajai vērtībai
grēksAtgriež skaitļa sinusu
kvrtAtgriež skaitļa kvadrātsakni
iedegumsAtgriež skaitļa pieskārienu

Tiek prasīts JavaScript datums

Arī Java ir aizņēmies objektu Datums, kuru var izmantot JavaScript, lai noteiktu pašreizējo laiku un datumu. Populāra objekta Datums JavaScript lietojumprogramma tekstlodziņā parāda digitālo pulksteni. Skripts izmanto objektu Date, lai atjauninātu pulksteni reizi sekundē. Jūs arī izmantojat objektu Datums, lai veiktu datuma matemātiku. Piemēram, jūsu skripts var noteikt dienu skaitu starp tagadni un noteiktu nākotnes datumu. Varat to izmantot, lai parādītu "atpakaļskaitīšanu", piemēram, dienu skaitu, kas palicis līdz jūsu uzņēmuma lielajai izpārdošanai.

JavaScript pret objektu Datums izturas kā pret konstruktora klasi. Lai izmantotu datumu, jāizveido jauns objekts Datums; pēc tam varat izmantot dažādas datuma metodes, lai iegūtu un iestatītu datumus. (Objektam Datums nav īpašību.) Ja jums ir zināma Java klases klase, objekta JavaScript datums rekvizīti lielākoties būs vienādi. Visbiežāk izmantotās metodes ir gūt metodes, kas objektā Datums iegūst vērtības laiku un datumu. Šīs metodes ir:

  • getHours () - atgriež stundu
  • getMinutes () - atgriež minūtes
  • getSeconds () - atgriež sekundes
  • getYear () - atgriež gadu ("96" ir 1996. gads)
  • getMonth () - atgriež mēnesi ("0" ir janvāris)
  • getDate () - atgriež mēneša dienu
  • getDay () - atgriež nedēļas dienu ("0" ir svētdiena)

(JavaScript objekta Datums objekts paredz arī objekta Datums laika un datuma iestatīšanu, taču tos reti izmanto.)

Jauna datuma objekta izveidei var būt vairākas formas. Lai atgrieztu objektu ar pašreizējo datumu un laiku, izmantojiet objektu Datums bez parametriem. Turpmāk datums_obj ir jauns objekts, kas satur pašreizējā datuma un laika vērtību, ko nosaka datora sistēmas pulkstenis.

var date_obj = new Datums ();

Varat arī norādīt datumu un laiku kā datuma konstruktora sastāvdaļu. Jebkura no šīm metodēm ir atļauta - abas jaunā datuma objektu iestata uz 1997. gada 1. janvāri pusnaktī pēc vietējā laika.

var date_obj = new Datums ("1997. gada 1. janvāris 00:00:00")

un

var date_obj = jauns datums (97, 0, 1, 12, 0, 0)

Lai izmantotu metodi Datums, pievienojiet metodi iepriekš izveidotajam datuma objektam. Piemēram, lai atgrieztu kārtējo gadu, izmantojiet:

var tagad = jauns datums (); var yearNow = tagad.getYear ();

Jūsu zināšanai šeit ir metodes, kuras atbalsta JavaScript objekts Datums.

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