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
garums | Stīgas garums |
Stīgu metodes
enkurs | Izveido nosaukumu enkuru (hiperteksta mērķis) |
liels | Iestata tekstu lielam |
mirgot | Iestata, ka teksts mirgo |
treknrakstā | Iestata tekstu treknrakstā |
raksturs | Atgriež rakstzīmi noteiktā vietā |
fiksēts | Iestata tekstu fiksēta soļa fonā |
fontu krāsa | Iestata fonta krāsu |
fonta izmērs | Iestata fonta lielumu |
indexOf | Atgriež rakstzīmes x pirmo sastopamību, sākot no pozīcijas y |
kursīvs | Iestata tekstu kursīvā |
lastIndexOf | Atgriež rakstzīmes x pēdējo sastopamību, sākot no pozīcijas y |
saite | Izveido hipersaiti |
mazs | Iestata tekstu mazam |
streiks | Iestata tekstu svītrot |
apakšnodaļa | Iestata tekstu apakšindeksam |
apakšvirkne | Atgriež virknes daļu |
sup | Iestata tekstu virsrakstā |
toLowerString | Stīgu pārveido par mazajiem burtiem |
toUpperString | Pā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
E | Eulera konstante |
LN2 | 2 dabiskais logaritms |
LN10 | 10 dabiskais logaritms |
LOG2E | 2. bāzes logaritms e |
LOG10E | Bāzes 10 logaritms e |
PI | PI skaitliskais ekvivalents: 3,14 utt. |
SQRT1_2 | Pusītes kvadrātsakne |
SQRT2 | Kvadrātsakne no 2 |
Matemātikas metodes
abs | Atgriež skaitļa absolūto vērtību |
acos | Atgriež skaitļa loka kosinusu |
kā | Atgriež skaitļa loka sinusu |
atan | Atgriež skaitļa loka pieskārienu |
griesti | Atgriež mazāko skaitli, kas ir lielāks vai vienāds ar skaitli |
cos | Atgriež skaitļa kosinusu |
exp | Atgriež e (Eulera konstante) skaitļa jaudu |
stāvā | Atgriež lielāko skaitli, kas mazāks vai vienāds ar argumentu |
žurnāls | Atgriež skaitļa naturālo logaritmu (bāzes b) |
maks | Atgriež lielāko no divām vērtībām |
min | Atgriež mazāko no divām vērtībām |
Pow | Atgriež skaitļa vērtību, kas reizināta ar norādīto jaudu |
nejaušs | Atgriež nejaušu skaitli (tikai X platformās) |
raunds | Atgriež skaitli, noapaļotu līdz tuvākajai veselajai vērtībai |
grēks | Atgriež skaitļa sinusu |
kvrt | Atgriež skaitļa kvadrātsakni |
iedegums | Atgriež 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.