0% found this document useful (0 votes)
393 views207 pages

Секреты JavaScript Ниндзя

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
393 views207 pages

Секреты JavaScript Ниндзя

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 207
Secrets of the JavaScript Ninja JOHN RESIG BEAR BIBEAULT mam MANNING Manning Publications Co. 20 Baldwin Road PO Box 261 Shelter Isiand, NY 11964 Cexpemot! JavaScript HUHO3A JDKOH PE3MIP BEDP BUBO NAVA, WY Mocxea - Cankt-Tetep6ypr - Knes 2013 € 32.973.26-018.2.75 P34 € 681.3.07 Hismaremsexuii yom “Bribe” Ban. penaxnmeli CH. Tpuzyo Tlepeson ¢ anraticxoro 1 pesaxna H.B. Bepumeiina To o6uyim sonpocam oSpanmitrect, B Mszarenuceuit nom “Brmsame” no anpecy: [email protected], http: / /www.williamspublishing.com Pesur, Jixon, Bu6o, Beap. Cexpetst JavaScript nnngan : Hep. canta. —M.: OOO “HJ. Butsame”, 2018. — 416 c,: 1. —TMapan. Tm, ane. ISBN 978-5-8459-1843-7 (pyc.) BBK 32,973.26-018.2.75 ice nasnartiia nporpaMoniiix MpORyRTOR sRARIOTCH 3aperncrpMpOwAHHBIALM TOPTOBBIMI MApKANI BETCTBYIONNX (PPM. uxaxan acT» HACTORMeTO HAAAHMA HMB KAKI HenAX He MOXeT Garr BOCMpONABEREHA B Hi Opi TO HH Geio chopMe H Kaktnat 611 TO HH GuLTO cpeACrBanst, Gym» TO aneKTPOHHBE HII HMYECKHE, BKMOYAR (POTOKOMIPOBAHHe Ht SAITHCE Ha MareMITHBtit HOCHTENB, CCAM Ha STO HET MeHHOFO paspemicHnst usaTeMcTHa Manning Publication, Co. wuthorized translation from the English language edition published by Manning Publications Co, right © 2013. All rights reserved. Yo part of this publication may be reproduced, stored in a retrieval system, or transmitted, in orm or by means electronic, mechanical, photocopying, or otherwise, without prior written ission of the publisher. lussian language edition is published by Williams Publishing House according to the Agreement R&I Enterprises International, Copyright © 2013 Haywnononynaproe usdanue Tbxox Peanr, Besp Bu6o Cexpemvi JavaScript nundsa Jirrepatyprntii pezaxtop H.A. Honoea Bepctxa M.A. Yoawos Xynoxectsenmpuit penacrop B.P. Maaswomun Koppextop JA. Iepauevaco Tlogeucano w nevare 23.07.2013. opmart 70x100/16. Tapeurrypa Times. Tears ogpceriiax Yeu. mew. a. 38,5. Yair, 1. 34.8. Tupax 1500 axa. 3axas Ne 3708, Tleppaa Axayesmecan ranorpadps “Hayka” 199034, Carer TlerepGypr, Sa munus, 12/28 000 “H. 1. Bisuwane", 127055, r Mockea, ya. Jlectras, 7. 43. erp. 1 9785-8459-1843-7 (pyc.) 978-1-93-398869-6 (axien.) © Manarenscxuit x0m “Brumanc”, 2013 © by Manning Publications Co., 2013 Ornasnenue Yacrtp |. Mogroroska x o6yyeHMi0 Tnasa 1. Beegenme 6 ucxyccTeo nporpammuposanus Ha JavaScript Tnapa 2. Boopyxenme cpeqctsamu Tectuporanus M oTnanKK Yacte Il. O6yyeHne yyeHnKka Tnaea 3. OynKunm Kak OcHOBa OCHOB Tnasa 4. O6paijenne c ynkywamn Tnasa 5. COnmmenne c 3ambikaHnaMn Tnasa 6. O6vextHo-opverTHposaHHoe nporpamMMposaHve (C NOMOLbIO NpoTOTUNOB Tnaea 7. Osnagenue perynspHbiMl BbIPaKeHuAMK Tnaga 8. Yxpoujenme noToKos x Taiimepor Yacre Ill. O6yyeHne kaHaugata B MacTepa Tnaea 9. BeiwwcneHme Koma BO BpeMa BbINONHEHMA naga 10. Onepatope) with Tnaea 11. Crparernu paspaborku kpocc-6payseproro kona Tnasa 12. OGpauenne c arpu6ytamn, ceovicteamu u CSS Yacte IV. O6yyeHne mactepa Tnawa 13. OcoGexHoctn oOpa6orKn cobbiTHii Tnaga 14. Manunynuposaxne mopentio DOM Tnawa 15, Mexainamel CSS-cenexropos Npeamerubit ykasatenb 23 c) 35 53 87 7 151 187 213 231 233, 257 27 295 331 377 395 412 Comepxanne Ipequcnoene SnaropapHocTH 6 voli keure Koy aapeconana kunra Crpyxrypa KAMTH Yenonnbie OGosHaNeHHs, IPHHATEIE B KHHTE Sarpyxaemsiit nexonebtit Kon, Kax cnasarecs ¢ anropaxar 06 wamocrparym na oGnoxKe KEMTH 06 aptopax Dr MaqaTenbeTBA tact |. MogrotosKa k o6yyeHnio ‘Nlaga 1. Baegenne 8 McKyccTaO nporpaMMupoBaHus Ha JavaScript As6pannnie 6uGmorexn JavaScript IGuee npercrassenne o ssbiKe JavaScript CooGpaxteriia no nososy Kpoce-6paysepHoii paspa6orin epejonnie MeroquKH Tlepeyonas metonuka Tecruponannst Tlepegosas meronuka aHasa 1poMsBOAMTERBHOCTH Pesome 'naBa 2. Boopyxenve cpeqctsamu TeCTMpoBaHns M OTNADKK OnnaaKa Kona Perucrpanma peaymsraros Touxn npepsinanns: Dopmnpozanne Tecron Cpemet recrponanusst QUnit YUI Test JsUnit Hoveiiume cpenst Gnownoro Tecraponanns, Oconbi nocTpoeHus TecroBEIx HaGOpOR Ymeparcane Ipyunst recon Acuxponnioe Tecrapoparne i Yacte Il. O6yyenne yuennka [napa 3. DywKynu kak OCHOBA OCHOB Trannioe ormrane JavaScript kak aabika yHKUMOHaTbHOrO MporpaMMMponarHs, Oco6oe sHauenne cyHktMoHamHOro xapaKtepa JavaScript Copruponxa no aropirmy cpasnenus OGeanxenne dynxrit Onpexenenne o6zacreii xeficraua 1 yan Berson dyaxngtit Or apryMenron « napanerpam dynxnuit Burson B nize cpystknti Briss B age meToza Bs1308 B BHJe KOHCTpykropa Berson c nomMompbIO Meronos apply () “call () Pestome [napa 4. O6pawenne c dynKynAMn -AHOHMMHBIE (pyHKUMH Pexypena Pexypcnis 8 MMeHOBAHHEIX (pYHRIARK Pexypcrts p meronax Tipo6nema mpomayaromyx ccbLIOK Berpannaensie umenonannpie dbyHKnan Crolicrso callee Oco6entiocti npyMeneuns pynkytit KaK oGeKTOB Coxpanerme epyrcunit Camozanommarouynecs (pyRKUptH Vivarranma Metozon o6paGorKu maccumos Cricku aprymerrron nepemennott imEEt Tipexocrasienme nepemextioro icxa aprymenTon ¢ nomontsio meTona apply () Tleperpyska cpytxnytit TIpovepxa o6vexton Ha cpymxuya Pestome [napa 5. C6nwxenne c saMbikannaMn Tprenm zeticrens sampikannit Tipmwcresme saneixantii wa tipaxrince Hpupsaxa Korrrexcra dpynxqadit (oc IpuMeHenme pyxKrtit Tlepeonpeserenne nonexenus dbyskiant Hemenrentio piraninaemnie ¢pyHKuta Pestome Tnaga 6. O6vexTHo-opveHTuposanHoe nporpamMMpoBaHne NOMOWbIO NPOTOTHNOB Tlonysenne ax3eMmLixpos O6bCKTOB H MpoTOTHTb! Tlonysenne axsemmaspos O6beKTOR ‘Tummsannis oSnercton wepes KOHCTPYETOpS! 4 116 7 118 127 132 M1 49 151 152 152 159 10 Codepacanue Bompocsi npomanonwremiocrn Sarpyanenna xpoce-OpaysepHoro xapaxrepa, BOSHMKAIOUIHe mipv noctyne kK aTpH6yTam Pacumpenne nsentaduxaropa wi umeHH Moyen DOM Hopmannsauna URL Arpu6yr critenoro orpopsrertiia ArpuGyr Tana ‘Tpynnocrn onperererua mutexca nepexosa no TaGyasuriit Vimerta yaron ‘Tpyanocrn oGpamenna c arpuGyramnt criuienoro odpopmentss. Mecronaxonyjenne craiel Vimertonanie coiicra criienoro otpopmsierttn Cnoiicrno crmenoro ocpopwienma float Tipeo6pasonarine saveruii, ykasbinaeMbix 3 nunKcenX ‘Ykasanine pasmepos no BbicoTe H IMpHHe Manunynuponanue Hempoapaunocrsio ‘XoaeHHe no uBeTOBOMy KPyry Viaarevenne apruncrennnnx craic Pesiome Yactp IV. O6yyenve Mactepa Tnasa 13. Dcobennoctu o6pa6oTKn co6eiTHii Tipuesaka M OTBs3Ka O6paboTanKon CobprTHit O6sexr Tana Event Ynpasrenne o6pa6orKoii coSwrrnii Llenrpammonantoe xpatenme caazanioit ustbopmanyit Yopaxszenus o6pa6orankamn coOnrTHit Vmumporanne cobsrrnii Crenramsnie cobbiriis Bervminanve 1 jenermponarme Tercruposanne coGsrritk pomuTemsckomy azementy O6xoanoi mpHem 1H yerpanenna oTmrunit B 6paysepax Corre roroprocra zoKymerra Pesome Thasa 14. Manunynnposanue mogenbio DOM Betanka HTML-paamerunt Tpeo6pasonante v3 bopmata HTML » DOM Brmomenne cyenapnes Kaormposanue anemerton pasMerkn Yaauterme anemerton pasMerKit ‘Texcronoe copepaxumoe Yeranoska Texcra Tlonyserme texcra Pestome 355 357 361 362 372 375 377 378 379 387 390 393 393 Codepacanue nasa 15. Mexanusmni CSS-cenextopos Tipuxaannoit mrrepipeiic Selectors API no craxapry W3C Tipmmenenne XPath jis noncKa 91eMenToR Peannsanns wcroli Mone DOM (Cumrraxcuueckstit anains cenekropa Tlovick aemenros pasmeran Pumsrpanuia pesymsraros noncKa Pexypcuponanne 1 oGneasreHne pesysraton Bocxonsuuit mexannam cenexTopos Pestome Npepmernpii yxasatenb nN 401 404 405 406 407 410 412 ITpeducaoeue Tpwerynaa k narmicansno aroit kstri B Hastare 2008 roa, s BHVIET B TOM HacyItttyIo HEOGKO- JuIMOCTS, NOCKOMBKY B UMeRMIcticH TOTTa MFTeparype OTCYTCTBORATO HOAPOGHOE HITOKEHME CAMBIX BAOKHBIX COCTABAMIOUUNX sigbiKa IporpaMMErponasHis JavaScript (cpyreeutit, sania init npoToTHtion), a TaIoKe MpHemon HANNCaHHs KpocCOpaysepHoro Koza. K coxmatenmo, cortyaumia C Tex nop, Kak HH CrpaHHo, He Crata My'e. Bee Gomme cit 1 aeprint skcraguinaercs B paspa6orky HORHIX TEXHOTOPHIt, B TOM aHC- ne Gepyiurx cnoe Havaxo oT crantapra HTML5 11H nopeix sepcittt ECMAScript. Ho ner HIKAKOTO CMEICTA OCBALBATb HOBBIe TEXHOAOTHH WH MPHMeHATE CaMBIe CoBpemeHHBIe 6HG- AMOTEKHL, He MEA HaIEdkaucTo MpenCranneHHst O6 OCHOBHBIX xapakTepHETUKAX s3BIKA JavaScript. Hecmorpa Ha camoe cnetace Gymyujee paspaGorKu 6paysepon, Manian gaara 'n HaCTosUee BpeMa — OGecnesHTs paGoTOCTIOcOGHOCTS MpHKTaAHOTO Koma B CONDUIHINCTBE Gpaysepos 4 212 Gomnmeit vacTu noreHtpatADTX nomsoparenelt. Hecnorps 11a To uT0 37a KHUITa MHCATACK O.TO, OFA, KCHaCTBIO, He yTparaLla CBOCH akTy- ‘apnoctu. Moit coaprop, esp Bu6o, avec B Hee cyuecrnennie KoppeKTHBsI. On nocrapar ca CenaTS TaK, TTOGM MaTepHEAT KHMTH ete ZOATO OCTABAICH AKTYATHHDIM. Tloxroe nanuicanvie 9TH IGiHIT O6BACHAETCH TEM, “TO /LIA MaTepHaria HOC AHIIX ee T7a8, NocBsULeHHED paspaGorKe KpOCc6paysepHoro Kosa, MHe HEOGXOTHMO ObUIO fpHospecrHt ianectinsii omit. Mort mpesicrasnenns o paspaSorke Kpoce-GpaysepHoro Kowa Ha mpakrHiKe onmparotes ® OcHOBHOM Ha Mow pa6ory Han 6HEmMOTeKoH jQuery 214 JavaScript, PaGoras Hat MaTepHaioM nOCAeENMHX Tiau, HOCRAUIeHHEDX paspa6oTKe KpOCcGpaysepHnoro Kora, ocosnan, uTo GaTsIyIo HaCTH Gas0BOrO Koa GUGAMOTEKH {Query MorkHO GbLIO Ges WarlncaTD Inaue, OMTHMESHpOBaT 1 ClenaTh ce cocoGHO!L ynpaRAATh GarbUTHM 4FICTOM Gpay3epoB. Beposmo, caMre siiauitrebible HaMeHeHIia, BHECeHHbIE B jQuery BcEACrBHE HaTMCa Hua 9TOlt KHHIEH, CBagaNtb! C MOTHBIM NepecMoTpom Gasonoro Kosa ITOH GuGaOTEKH: OF Oprannaalum NaccHBHOTO MpOCTyUIMIBaHNA CETH Ha YpOBHE OTAENLHHX Spaysepon 10 06- hapyxenus goctynubix cpencts. Buaronaps sToMy rpumenerite GuGmoreKit |Query crano MPakTHMeECKH HEOTpanieHnbis, HcKUOTad HCOOXOAMMOCTS YUIFTHIBATS, 4TO B Gpaysepax cera Gyayt MpsicyTCTROBATD XapaKTEpHLIe MPOFPAMMEINe OWUUGKH WIM OTCYTCTHOBATE OT- Aenbubie CpezcTEA. B pesyaurate 9Tux Hameriennit n jQuery 1peayeMorpenbi MMorHe ycosepuIeHCTRORAHIIS, Tporsseqennie 8 Gpaysepax 3a isa Mpomemmarx Tosa: BeIMYCK Gpaysepa Chrome KommanHel: Google: umpoxoe pacupocrparienie HoabsoBarenbcsux areHtos fo Mepe pocra Tomyzsp- HOCTH MOBILIBHMX BETEHCACHIH; OCTpOe CoMepHHTECTBO CpenH KoMMausitti Mozilla, Google 2 Apple sa nosnimentie npossnomurennocra ux 6paysepon: a TAKKe IHAYHTEMBHBIE YCOBCP- iencraonauins 6paysepa Internet Explorer, 4a KOTOpBIe, HaKOHELL-TO, pewHTach KOpHOpa- tua Microsoft. Teneps xe HEABIA LONVCKATH. 4TO OH H TOT KE MEXAHNSM BHayAUsaUHY (sanpemep, WebKit our Trident e Internet Explorer) 6yneT Bcerta XeHCTBOBATH ONFHAKOBO. Kopentie nepemern MponCxO,sT JOBO.BHO GuICTpo M PachpocTpanmores CpEemH TOCTOAITE Ho pactymero uncxa NOABOBaTeNE!. 14 Mpeducaoeue C nomouwio cnioco6on 1 npsemon, onticEIBAeMnx B 9TOHL KEE, Kpocc-6paysepHiute BOs MoxHoctH jQuery o6ecreuimaioT OnOTDHO NPOwHyIO TapaHTio Toro, WTO KoA, HaNvicaH- neil cpeactpamn jQuery, 6yxeT pa6orars B HanGonbuleM aiicie Cpe 6paysepos. Braronapa sToli rapantnn 6uGTHOTeKA jQuery HamLta MMpoKoe pacnpoctpanenne ga NOCIeRHNe HETAI pe roua. [lo zannim, onyGanKonantim Ha seG-caitre BuiltWith.com, ova Teneps mpime- naeTes 1a 58% 13 10 ToicH4 CaMBIX 1HPOKO MoceulaeMEIX a Hlerrepnere Be6-cairron. Cpeacrna JavaScript, B Tom WHCAe BEIYCReHHe Koa, NPOTHBOpeHHBHe orIeparopet with W1 TaliMepBl, OTHOCHTEIDHO MOCTORHHB! H MPOZOKAOT HCTONBSOBATECA CaMBIMH HHTTEpeC- nnimn cnocoGamu. B ractommee Bpems Ha OcHoxe JavaScript NoctpoeH 1H cKOMMILUIpoBaH Hesbit psy AKTHEHO MIpHMCHReMBEX 35IKOB NPOTpaMMUPOBAHHA, B TOM WHCIe CoffeeScript 1 Processing,js. Ho 14 Toro sToGut OHM pelicTRoRAMH sdxeiimca Xotyan (James Hatheway), Jbxapema Xupmia (Jared Hirsch), Jpxnma Pyaa (Jim Roos), Jbko Jhrrroxa (Joe Litton), Hoxara Jimixa (Johannes Link), Jbxona Tlomcona (John Paulson), Jxomya Xeitepa (Joshua Heyer), Jpxy1o Fexspxappo (Julio Guijarro), Kypra Ara (Kurt Jung), Jlouxa Caiimowa (Lo c Simon), Hivta Muxca (Neil Mix), PoGepra Xancoma (Robert Hanson), Cxotta Coiiera (Scott Sauyet), Crioapra KaGopria (Stuart Caborn), a Tarcxe Tou Humana (Tony Niemann). Oco6aa 6naronapHocrs abipaxaerca Banerruny Kperrasy (Valentin Crettaz), HaysHomy Pewaxropy krnirv. TomiMo mposepxa Kaxjoro MpUMepa Koa B HECKOJIDKYX Cpepax, OH BHEC HeoncHumnlil sk1a, B YTOUHEHKE TeKCTa PyKOMHCH H OOHApYKEHHE NponyuenHod Hxhop- MANE C YHETOM NOCTEARHK HOMeHeHHit, BRECEHHBM B momMepxKy JavaScript 1 HTMLS » Spaysepax. He Mennmas GaronapHocts sripaxaetca Taxxe bepry Boitrey (Bert Bates), ma8- HIeMy OT3hB O KHUTe H HEONCHMMEIC TIPE OEHHA HO HOBOMY ee yayuuleHntisi. BecKOHeHHBIe vachi oGuiexus ¢ Hum no Skype, Gesyciowuo, oxymaauce cropuneli. 16 Ob mois xnuze 2pxou Pesur Mue xorenoce 661 NoGzarosapHTh MOHX posttTencit 3a HX NOCTOAMAIO MopamTBHyIO 1 MaTepHambHyIo NONLePKKY B TETCHME MHOTHX net. OHH MpeRocrasHmt BCe HEOOXOAHMELE Pecypce! H cpeacrea, YTOGEI NpoByzuiTh BO MHe MHTTepec K NporpaMMupoparito, 1 ¢ TeX Op TOCTOsHHO NOOMIpsL.IH Mont saHLATTHA B aro OGaacTH. Beap Bu6o 3a ysactue B paSore Hay 9TOH, Ke NATO Lin Mena KHMITOF # XOTEN Gel, KAK BCETMA, noGarosapH'te CBOMX KONIC, Y4aCTHHKOB M OpraxsaTopos cpopyma JavaRanch (www. javaranch.com). Bene Ges aranoro yaactus 8 3TOM cbopyMe A Gut Hynonga He ayaa nue cats KHMTH, 1 NosTOMy #icKpeHFe Gxaronapio ona Yirrora (Paul Wheaton) 1 Kar Ceeppa (Kathy Sierra) 3a o6puie wanyrcrania, a Take MOpaTbHyio NONMeEpIKKY CIEAYIOILHX KO.LIET, XOTA H He TOABKO HX OANHX: Spuxa Tackapeno (Eric Pascarello), Ipucra Mpramaa Xwvia (Ernest Friedman Hill), Suxpio Monxxaysa (Andrew Monkhouse), Jbxitta Boapexa (Jeanne Boyarsky), Bepra Baiirca (Bert Bates), a Tatoxe Maxca Xa6v6u (Max Habibi). Cepaeunan Mpnsnatenbuocrh spipaxaetca Moemy apyry Jbke1o 1 MouM coGaKam, Mequexonxy 1 Koamo, 3a 10, 40 OHM TeprieT Moe MpHCyTCTAHE H _PenKO HaALeNAUTHCh OWKHGIM BHUMAHHEM ¢ Moet CTOpOHDI BO BpeMs paGoTbi Hag STO! KeBIOH. H HaKOHeN, Maile xore10Ce Ger NOGrarogaputTs cBoero Coasropa JbKora Peattra, Gea KoTOporo ata kHHKa He COCTOsIACb Gbt. 06 sto’ KHure OcoGoe sHaenue JavaScript 65110 OVEBIUIHO He Cerna, HO Terlepb OHO HecoMHeHHO. BeG-npiioxenun cnyxat (218 Toro, sTO6BI IpexOCTABIITe OMBIOBATEARM GYHKUBOHATLHO Gorarniii 1 ynoGusiit mstepipeiic, Ho Ges JavaScript e Virrepnete moxktt0 mmm ToKasemBart, sororpadnn Komex, Tenepb, Kak HHKOr/a pee, paspaborumkam BeG-mprutoxcermtti Tpe- Gytorcr mpournie sania 1 HapsiKH nporpasasiposaimm Ha abiKe JavaScript, MpsBORsMeM Bxelicrane 3TH npiuioxenna. Ho kax u saptpak ¢ aremscHHoRbiM CoKOM, sabik JavaScript noneseH He TONBKO 1118 Gpay- aepon. Hpeonones yakne rpaxitubt mpuMeneHtis n 6paysepax, 9TOT mBBIK Tporpamncrpona- HA Tenlepb NpHUMcHReTCR Ha Ceprepax B TakHx MexarmaMax, kak Rhino u V8, a TaKcKe B HuTerpuponarmrx cpeaax spoge Node,js. H xora ara kira nocnstttenia rasnnM ofpasont HpyMexenmio JavaScript B neG-mpHTOxKeHHAX, OCHORDI 9TOTO AIbIKa MporpaMmnponanits, Hpeacrapaenniie 8 wacrit IL, BsIKOgxT WaleKo aa Npexenbi upuMeHIMOCTH tipi! paspaGor- Ke neG-npnioxennit. C ysemmuennem sucia paspa6oTHKon, Homsyiouurxcs JavaScript, Tenepp, KaK HHKOTAa NPERE, CTATO ONEHE BAKHO 3HATb TREPLO OCHOBEI ITOFO REIKA IPO- 'paMMMposarus, wro6si BAaeTH HM B COBEpLLENCTBE. Komy anpecogana kHura Sra kina paccuwrana Ha Tex, KTO y>xe ARAKOM ¢ JavaScript. Fem xke Bot TomKo Haumae- Te Hayuare sistiK JavaScript 17H sHaeTe MME MOXKHHY ero oncparopow Hs (pparMeHTOB KOM. HaitaeHHen Lirreprere, siensr, ota KHtsra 1OKa ete He 218 pac. Kuna aapeconarta paspa- SoTuKa se6-nprrexeniii, yxe BTATEMMUHM OCHOBAMH Nporpamuponarnis Ha JavaScript. A970 o3HaHacr, STU BbI AOUKHBI SHAT OCHOBIYI0 CTpyKTypy Oneparopos JavaScript ityMers COCTaBIATh H3 HHX Ipoctsie CTpamrurme cyenapun. Jan sroro copcem we U6asaTCALHO HMeTb GombLIO! OMIT mporpammupoBanust Ha JavaScript. Stor OMBIT MOxHO NPHOGPECTH, 06 amoii xnuze 17 npopaGoran mavepiat zanHofi KuntrH, HoH nomHbia HeBexaol B JavaScript raioKe Henan Gurr. Aaa srenma 970i KHurn Tpe6viorcs Takxe sHanua HTML a CSS. Onste xe 9TH ananns HM ONbIT COBCEM He OGASATEALHO AODKHLI OFT OCHOBUTEABHDIMHL, TEM HE MEHEE BBI LODKHBE BrA{eTb OcHOBAMM KOMMOHOBKH Be6-crparnn. Eom ae Bam TpeGyeTeR Matepia jaa npen| BapHTEXbHOL No”LOTOBKH K HTeHMO ¥TOHl KH, PeKOMeHyeM NPHOGpEcTH OLHO ma cre _AyIOUnx HOnyaspHENX sraqarni no JavaScript u paspadorKe neG-priiowmennsit: JavaScript: TI Definitive Guide Jloinza OnaKarawa (David Flanagan; » pyeckom nepeBoge Kinira BbitiLIa o;| nasnannem JavaScript. [lodpoGnoe pyxowodcmen , JavaScript: The Good Parts yrnaca Kpoxebopzal (Douglas Crockford: » pyeckom nepenoge kuura situa nog Haapanuem JavaScript. Curve emopones) was Head First JavaScript Maitxia Moppucona (Michael Morrison; 8 pycckom nepe- soe KHUra BHInLTa Ton Haspanitem Hsywaen JavaScript) Ctpyktypa KHurn ‘Sra ktutra opraHisoBana Tak, YTOGHI Bb CMOMIH IIpo#TH Bec KypC OGyyeRNA OT yIeEHHKA XO Mactepa NporpaMMuposanns Ha JavaScript. B vacru I npescramients ocHoBHOM Mpes- MET KTH 1 pall HHCTpyMeHTaMbHBIX CpeNCTB JULIA UByYeHMA MarepHasia OCTaMHBIX WacTelt. Bwacru Il mianioe sammanue ynenietca ocHoBas JavaScript, Te. TEM s.abIKOBBIM CpeaCTBAM, KOTOPLIC BOCIPHNUMAlOTCH KAK BONE ECTECTBETHDIC, HO EME HY>KHO SKATE, KAKUM O6pa- 30M OF AefiCTBYlOT. BOSMOXKHO, 9TO CAMAK BAXKEAL YACT KHHIH, Hi l@KE ECM BI OCHLUTTE. TONBKO €€, TO H TOrMA NOAyUHTe HaMHOTG Go.lee OCHOBATENEHOE Mpencranrenne o JavaScript. B wactu III ocnosst, npencranennpre 8 sacri Il, paccMatpHBatotes Goze yrAyOTEHHO B. BASH € PeULEHVEM TPYAHLIX 34124, KOTOpHe Tepe HaMH Cranat Gpaysepyt. H sapepurano- mefi kmry vacTH IV pacumpenmmie s11KOBLIe BOSMOXIOCTH PacemaTPHBAIOTCH Ha OCHOBE YPOKOB, MABICYeHHEIX 113 COSAHHM TAKIX YCOBEPUEHCTBOBAHHBIX GHGmHOTEK JavaScript, Kax jQuery. A reneps mrepeiijem K KparkoMy HvIOXKeHInE OTEMEBIX IAB. B Diane | npegcransenpt ‘Te TpyMOCTH, KOTOPEIe IPUXOMITCH MpcoAOAeBATD PaspaGoTuUKAM COBPeMCHHIIX BEG- Upwioxennii, B Hei paccMarprisaiores OCHOBHHIC TpyAHOCTH, KOTOpUIe BIeuET 3a COOK iutpokoe pacnpocrpancnne Gpaysepos, a Talcke anpoOupowattninie Nepepowele MeTOsuKH, KoToppiM Neo6xosuMO CeTODATs NPN paspaGorKe nen piLIoxerutli, BK MOAR TECTHPOBE Hie HaHa pousBOguTTeTHOCTH. | B rmape 2 o6cyxaaorca nonpoctt TecTHpoBANILT, a Take TeKyMee CocTomHHE NpOLeAYP 1 MeTpymerranbanx cpeqcTs TecTuporanua. B Hci npercraBneH TAKE HeGOMDMO!, HO) ptpexrimuesii upHHuguT yrecpayieuHst, KoTOpLi GyneT B HICK MONUTEABHOM nopAKe Tipit MEMSITECR B OCTAIBHOTE SACTH KHEIFH € HeAbIO YOeqHTHCR B TOM, TO KON BHIMUALAET CBOM chyna. a morgan Tom, ro On Hx He muINOMATET! Boopyxciipintice yNOsUTTYTLIMA BLINe HNICTPyMeHTAMLITLIMET CpencTBANH, MOAKHO Hepet THK mane 3, ¢ KoTOpOt HAUIEHACTEH PacCMOTPEHHE OCHO #ABIKA M, B HaCTHOCTH, C HOHATHR PynxyuwB TOM BHUE, BKAKOM ONO ONperexaeTcs B JavaScript. Hla repsntit Bara, OCHOBHOE SHRMANHE CICTOBATO Gut YRETUTE HOHTENO OGsexma, TEM HE MCHCE HYAHO HMETe MPERAE Bcero acHoe npegCTasienne o dyMKI, HOCKOuIDKy JavaScript — xsbne byHEIpOHATBHOTO Nporpammuponania. Bent UMEHHO ¢ NOHTHA qbyHKIUN HaHaeTCA Halle MOCTeTTEHHOe Tipenpamertie 13 oSpitirbrx yHCHEKON B MacTepoR MpOrpaMemponarvis Ha JavaScript! He sasepuins 20 xonua pacemorpenite pyHiKititlt, OCHOBEI, YCROEUUIBTE B EBC 3, MORK Ho npumentrs yxe B mase 4 in PeMleHHA 34,24, BOSHHKAIOUHX npH paspaboTKe BeO- upraoxenrit. B oToit raape TOLATHe PeKypCHH paccmarpHBAcTCH HE TOALKO pau Hee Ca 06 smoit xnuze yIECTHOBADUINIX Ha MOMENT HAMHcaHist KHEIrH, B TOM suicae Internet Explorer 9, Firefox, afari m Google Chrome. aK CBASATBCH C ABTOPaMHK Astopet Haarecrs0 Manning Publications npyirnamator «urrareneii na ¢popym, no- SALICHBIt STON KEHTE, TAC ORAL MOTYT PaaMECTHTh CBOH KONMEHTAPHH K KHHTE, 3alarb onpockl TEXHUMECKOTO XAPAKTEPA H HOYT NOMOLL OT ABTOPOB H APYPHX NoBsoBaTe- eit JavaScript. JL1 noctytia M noAMICKH Ha cbopyM BRe;UrTe B OKHE CBOeTO Gpaysepa alpec ww smanning. com/SecretsoftheJavaScriptNinja menkurre wa ccbuiKe Author nline (AnTop 8 onepaTHHOM pexume). Ha orkpsteutetion crparinie noaBaTen cBeAcHHs TOM, Kak BOIITH Ha (POpyM MOCAE perHeTpalt, O BILAEX AOCTYNHO! MOMOUU, a TAKE Mpa- swrax pejentis :popyMa. 16 unmoctpaynu Ha O6nOxKKe KH ‘Ourypa nostra 11a oGroxKe KHUFH BaxTa ¢ Tpantopst Ha nepeBe “Akrep KoB posi caMypas™ EHSBCCTHOLO ANOHCKOTO XyAOKHHKa Cepessntt XIX pexa. Ho— avo dopa MysEIKATHO!t paMBI B KTACCHYECKOM STIOHCKOM TeaTpe, HerommoNeticn Havas ¢ XIV seKa. Mnorue EPCOHAXKH NOAOTHPIX ApAM HITPalOT B MACKAX, IPUYEM MYKCKHE 1 IKEHCKHE Postit HCTIOA- MOT TOMLKO MyacuHHLI. CaMypati — 9T0 reporeckas ¢burypa ANOHCKOii HCTOpUM, HepesKO pexcrantentaa B rearpe H 1306 pasirresbHOM HCKyCCTRE ¢ GosMNINIM MaCTePCTBOM, TLILIIO- rb10 HAPHAa H CYPOBOCTHIO HACTORILETO BONA, (Canypant 1 11181199 GeUTH ROMANE, OTZGABILTUMIICH B ATIOHCKOM BOCHHOM HCKYCCTRE CBO- M MACTEPCTHOM, CMEIOCTBKO M XHTpOCTEIO, CaMypaH OTHOCHANCS K BOeHHOM SANT, GALI ppOmLIO OGPasOBAHEl, YMCA YHTATH H NCATH, a TAKKE HCKYCHO BOCRATR. OrtH GbLIH CBABANBE FPOTHM KOEKCOM HECTH TION HasBaHHten GYCHNO, TO O3HAMaCT Hy ROMA. ITOT KOK ECTH TICPEJARAICH HAYCTHO Ha HOKONEHHA B OKOeHHE, HatHHast ¢X Beka. Camypaen Ha- PAU 13 APHCTOKPATOR Ht BBICUINX CIOEB INOHCKOTO OGMECTRa aHAIOFMUHO EsponeicKUM, stttaps. OHWt ua Ha GiTBy 8 Crporom GOEBOM NOpsUIKE B CLOAKADIX JOCHEXAX 1 SIPKHX KEAWAX, YTOOLI MPOWSBECTH BICYATACHHE H YCTPanINT NPOTHBHMKA. A HITHIIA OTNIYA- ich B Gombiicth creneHis CBOHM GOeBbIM HCKYCCTBOM, NEM OOMLECTBEHHDIM NOsOKEHHEM nl OGpasowanHOcrs!o. OAEBAINCE OHM BHEPHOE, 3akPHIRAM CRO THO, BhINOTHALTHE Goe- PIE SIAN B OAUHONKY HIN HEGOATBINME rpynniaMit, Halayas Ha NPOTHBHHKA CKPbITHO, C TEPBINIS YZOBKAMBI 1 IpHMeHsA JUOGYIO TAKTHKY sia ROcTInxenms yenexa. ERHCTBeHKDIM PaBLLIOM HX NOBeseHHA Shia CKPMTHOCT. Hounocrparuta 1a oGnoxKe KHUH OTOGpalia C TPEX SICHCKHX rpanlop, KOTOpLIe MHOrHe Ata IpHRLALIEKAT MaBHOMY PenakTOpy Ha;laTembcrRa Manning Publications. H kona asro- Ht HOKAAH NOXOsUINee HIOHPAKEHME HUEFLISA Jk OOOKKH STO! KANE, HX BHUMAHKe MPH velwia NopasuresAbHAM [pastopa CaMypasi, KOTOPYI OHH OTOGpamH R KaseCTRE HULMOCTpaLitt 1a OAPs €€ CAOKHOM ACTAAIISAIAIM, APKHM KPACKAM H Bbipa3i{TesIBHOMY H3OOPAKEHUIO Cy- DBOTO RONHA, FOTOROFO HAHECTH yap 4 MOGEMTTE. B name epema, Korza ony KOMNbIWTepUryIO KHMTY TpyAHO OTMIUHTS OT Apyroll, usmaTe mE 80 Manning Publications canines ceoett wOGKperTateNbHOCTEIO Ht HENEULATHBHOCTEIO B popmemm: o6noxex vazanaeMbix Govlke ABAMATH ACT KHUE, Ee HArAAWO NposBaseTes °€ MHOTOOGpasHE MUPOBOTO HIOGPAaHTENbHOTO HeKyeeTRa. H XapakTepHbIM TOMY NpHMe- OM CHYAMIT OGNOAKKA ¥TOH KeMIEH. O6 aemopax Txou Pesur sanetea pexanom cpaxynsrera praise: sutrenbHolt Texnuxn 8 Axanemmm Xana u coazarenem 6uGmMoTeKH jQuery 10 JavaScript. Ho xanman, ony GinxosanHbmM Ha BeG-caitre BuiltWith.com, ata 6u- Gnuoreka 8 Hactosulee spems pHMeHseTes t1a 58% 13 10 -Teica¥ canes mmpoKo NocemaeEtx 8 Merrepnere we6- caifroe, a Taioke Ha eCaTKaX MUJLIHOKOR JApyrUx cation. CaenonarerbHO, OHa OTHOCHTCA K YUCITY CAMBIX MAaCCORBIX TeXHONOrHis, MPenHasHATeHHBIX JUIR NOCTpoeHHR Be6- caiiTOB, a BOSMOKHO, M CaMBIX PACTIPOCTPAHeHHBIK 3a BCE BPEMs TeXHONOFHil MporpaMMMpoRaHHs. Tbxon cosman racke uenbilt put yTHINT 1 MpoexTos ¢ OTKpBITHIM KosOM, B-TOM SHICTe Processing,js (nepeHio- cumyto Ha JavaScript sepcrio aapixa Processing 21 o6paGorxnt xansbix), QUnit (rectonsttt saGop suis Tectuporaniia Kosa JavaScript) H TestSwarm (naartopMy 71s pacrrpertenensoro recrmposanus Koza JavaScript). B vactosmee spems /bkox paGoTaer 1a COepIICHCTROBAHTEM CHCTEMEI OOpasoBaHHA B oGnacTH AbLancHTTenbHON TexHMKH R Akagzemun Xana, Ie On paspabaTHmacT yucGHbI THAN UW MACTpyMeHTamMHbie cpeneTEa Jia OGytentA Juogels NporpaMaMpORARIHO HesaBHCHMO OT mix nospacra. Ocrosiiaa trem Akazenun Xasia — coanars OTAMUTEHIC YEOHBIe PECYPCHI, CBO- Gomo noctymiie ist acex xeU0MUIX. JEKOH PAGOTAET HE TOABKO [VUE TOTO, 4TOGbI OGYuATH APYCHX MporpaMalyponaTo, HO H C Heo 3axKe%b NepAYIO HCKpy. BOSSY AA AOUIYTO HAITEpEC k Nporpanauporammo y BeaKoro, HaArHICABUIeTO CBOIO NepEyIo HporpaMny. [pooxMBact OF 8 uB1o-opKCKOM paiione Bpykar i 8 cboGosHoe OT paGore! BpeMa YasteKaeTCH MsyscHHEM YknEd — atrOLCKOt rpamtopLi Ha Aepene. Leap Bu6o sannmactes nporpammmpopanie Gouee “rpex Aecavieruli, naunias © NporpamMbl, HanHCaHHOH JIA Mrpor B KpecTHKI-HOMMKH Ha cyTtep-OBM Control Data Cyber sepea teneraiin na cxopocta 100 Gon. Hives aba gunioma mkeHepxenextpounka, Beap sannmar ca paspaGorKoit axTcHH 1 ananorHaHo# anmapaTypbh HO, HauMHad C nepsoli paGoTs 8 Koproparamt Digital Equipment Corporation, ero scersa Goupute yaacKao nporpammuporaxne. Besp BAINIOAHSLI MIPOEKTeI Ha 3aKas 1A TAKHX KOM nanuii, xax Lightbridge Inc., BMC Software, Dragon Systems, Works.com. a MHOFHX APYFHX KOMMEPTECKUS oprannaauuii, On axe compan 8 apm CHIA, o6ysaa 22 06 aamopax CONAaTHEXOTHHER GOCBOMY MCKYCCTBY NOspHIBATD TAHKHM, YTO O4EH_ UPHTOITOCE eny BIOCIEACTBMM Ha COBEMAHHSIX paspa6OTMKOB NporpaMMHoro oGecredeHus, me B O6CTa HopKe GypHBIx zicKyccitit O6cpRALIMCE HacyuHte saasH TeKyuUNX npoeKToB. B HaCTosutee ape Beap paGoracr B RowKHOCTH paspaGoruinKa apxitTeKTypBt TpOrpaMMHOro OGecnewe- HHA B KOMIAHIM, SaNMIMAONEH BEAYWIEe MECTO CpesH NOCTABINKOB OBITOBBIX WIO3OBLIX YeTPOLCTS H TCAEHHSHOHHLIX ABOHEHTCKUX NPHCTABOK. Beap smumeres arropom e1oro pata APYTHX KHHE, BBIMEMUMTX w HaRaTemecTRe Manning Publications: Query in Action (nepnoe ut stopoe warans), Ajax in Practice (Ajax na npaxmuxe, ep. ana... HA "Bivtmc", 2008 r. at Profotype and Seriptaculous in Action (AJAX: 6uGanorexnt Prototype Scriptaculous 8 aeiicrsum, ep. caxen., H/|"Bumsamc", 2008 r.). Kpome toro, oH Guur Hay¥tiniM penleHseHToM MHorHX KUT NO paspaGoTKe BeG-IpHLIOKeHMit 13 cepun Head First, auniequuinx 8 wagaremcrse O'Reilly Publishing: Head First Ajax, Head Rush Ajax Head First Servlets and JSP. B caoGoHoe ot padorsi 3a KomnbIoTepoM Bpems Beap 106HT TOTORITS cbITHBIe OGenbs, 0 HEM CBILIETENbCTBYET pasMep FO GpIOK, CHFIMATS Ha dpoTO- HM BiLjeOKAMEpy, ERT Ha chOeM MoTOUMKXe Mapku Yamaha V-Star 4 HOCHT» pyGallkH ¢ OTTeaTasiHILIM pRICyHKOM B TponMve- ckom crwie, Ox paboraeT u mpoxkuBaer Bropore Ocrin, urr. Texac, koTophili over 11061, 3a HCKMOUCHHEM COBEpIEHHO GecmraGainrbIx BomTTeNet. OT u3qatTenbcTBa But, surrarex» ool KHITH, H ECT DTABHBI e€ KPHTHK 1 KOMMeHTaTop. Mat ten Bare NHEHIIE H XOTHIM aHaTb, STO GbINO CACMANO HAMM MPABLLIBHO, WTO MOKHO OBLIO Ce NAT ny We HYTO CUIe Bh XOTE.IM Gut YBIETE MaZaHHbIM HAM, Ham HETepecHO yeTBIutaTs 1 106 me APYTHe saMeuititsl, KOTOPHIe BAM XOTENOCK Gi BAICKASATH B Halll APEC. Mor aciem nauninx KoMMeHTapHes H HaeeMCA Ha HIOX. Bet MoxeTe MIpnczats Ham Gy Max HOC IUIM 971eKTpOHHOE HUCHMO, MHGO NPOCTO MOCeTHTs Ham BeG-caitr Hl OCTABIETS CBOH 3aMe- TaHHA Tam. O2HUM CTOnoM, moGeIM yOGHIIM 18 BAC CHOCOGOM faitTe HAM HATE, HpaBATeH UI HET BAM 97a KHMTa, a TAKKE BBICKAKHTE CBOE MHEHHE © TOM, KaK ClenaTb HauIM KHMEH 5ONCE WHFTePECHBIMH JL BAC. Tlocturas nicemo ua cooGuenne, He saGyqETe ykasars Haanalue KytIrH H €€ aBTOpoR, 1 TaroKe wail OGparHuiit aipec. Mbt BHHMATE.THHO O3HAKOMIMCH C BallIHIM MHEHHEM 1 0632. fEABHO YITEM €TO IIpH OTGOpe M TOgFOTOBKE K H3AHIIO NOCTERVIOMLAX KUT, Hau anexrponneie ampeca: E-mail: [email protected] WWW http://www.williamspublishing.com Hau nowronpre aapeca: 8 Poccnn: 127055, r. Mocksa, yn. Necuan, 7,43, cp. 1 B Yepanne, 03150, r. Knee, a/n 152 1 TTodzomoexa K OOyUeHUI0 ee sans Ha JavaScript. H3 rast | Bh yoraere uenH aptopos stot Kuna. B Heit sa KraTbiBAIOTCS OCHOBM! TOH cpens!, B KOTOpO!i aBTopsI MIpHBEILTH Mporpanmy:powar wa JavaScript. Ha crapp! 2 Boi ysHaeTe, HOVEMY TAK BAXXHO BEITOTHATE TECTHPOBAHHE Kona. B Heit cHavaza 1aerca KparkHii o630p HeKOTOPHIX HHCTpyMeHTaHNIK CpeqeTE Tectuponanus. A sarem GyzyT paspaGoTaHbi HeOOsIualiHO NpOCTHIe HECTpyMeHTate Hble Cpeqcrsa TECTHPOBAHHA, KOTOPHIMH BAM MPeNCTOHT BOcTIONBAORATECH MPH 10 caenyiontem o6yxeHHH. Sanepiie UTEHHE sTOH HACTH KHMTH, bi GyZeTe FOTOBEL MPH CTYRHTS K OGy4eHHIO HCKyCCTRY Mporpanmapowartia Ha JavaScript. Beedenue 6 uckyccmeo npoe AMMUPOBAHUA na JavaScript B 3TOnW rnase... @ Hasnauenme u crpyerypa kauri . Kpeniorii obsop paccssaspariscanx Outages. . Tlosicnere nepexontix neTonow mporpanamponarma Ha JavaScript @ Asropcxas paspaGorKa kpoce-Opayseprioro Koja @ [lpumepst upumenenns Tecronoro HaGopa Ecam bx airraete aTy KuHEy, TO, CKOpee BCETO, SHAETE, UTO CosmATD sepepeKTHBHBIT KPoCc- Gpayscpunii Kon Ha JavaScript He TaK-To mpocro. [onstmo OGEITHEIX TpyaHocreli, BosHH- KAIOUUIX Np HANICAHHit HUCTOFO KONA, MPUXOANTCA NPCOAONeBATE HENEMBIE CROKGOCTH H npenarcreits, KoTOpie CransT caMH Spayaept. ZLt GopLOn ¢ HoAOGHEAMN TpyanocraNat paspaborusnt Koga Ha JavaScript HepeqKo MpuGeraior K TOCTpoerHIo HaGopa THMITYTIEK, HeoHOKpaTHO HenomayemELx yHKUNi B BILE GUGAKOTeKH JavaScript. Taxne GuGauore- Ku 3a4aCTylO OTINUAOTCH CBOHM COLCPAAHMBIM Hi CHOXHOCTHIO, HO UIs HK BCeTA OCTAeTCA onnta oGulaa XapakTepHas OCOGEHHOCTE: OH AO;DKHE OBIT MpOCTBL B yTIOTpeGreHM, 110- (CTPoeHBE ¢ HauIMeHDMIHT HATE PKKAME 51 MPHTOMHBI JL BCEX BIVIOB LEEDLIK 6paysepon. Oxenngno, 470 14 MpaniibHoro nOCTpoeHus coGcTBCHHOTO Kona TpeGyeTca ACHE Mpeqcrannenne 0 TOM, Kak YCrpoetin 1 CONPOROATAOTCH caMEe Aya GuGMIOTEKH JavaScript. Hostomy sasiaverne stoi KHHTM — packppiTe MpHEMBI H CeKpeTol, HiuKaTTCy UIMPOBAHMNE STHMH TICPEOKIACCHAIMIL KOAOBEIMH Gazamn 8 eslsHEitt pecype. B aToit xmre Gvayr, 8 wacTHOCTH, paccMoTpeHEI CHlOcobta HocTpocHHa pactpocrpanennLn SuGmHOTEK JavaScript. [ostomy oaaxommnes ¢ sum 6n6.1HoTeKaMH FOBTUDKE 26 Yacme IIT. O6uenue xandudama @ macmepa Vs6panupie 6u6nvoteku JavaScript B orolf Kruire rmannoe BHHMAHHe yaeaneTes croco6am 1 Mpakrimeckua npHewam, mpH- MCHSIEMBIM UI COa,,aHKA CoRPeMeEHHBIX 6uGnHOTeK JavaScript. H ocHoBHO! 6HOAMOTEeKOI, KOTOpyO Mu GyeM aiech PaccMirrpHinarD, GeaycroBHO, aBaNETCA, j|Query, NOCKOTBKY o1a NONCEMECTHO LIPUMCHIETEH B COBpeMeIIHO# NpaxTHKe MporpaMMlipowartiur Ha JavaScript, Bauumiaa ReqyLICe NOAOReHHE pew Npomnx GuEMOTeK. Bu6anorena jQuery (http: //jquery.com) coamuta u muinyutera Jixonom Peanrom siimape 2006 roga. Ona pactipocrpansiet mpumenesie CSS-cenexTopos 111s COnTaCOBAHK C coaepaxuntim Moxent DOM, Toxo nipostx dpyHkiWionanbALEX BosMOxHOCTeli, oFta TIpe- AOCTABARET CpeNCTBA JU MAHHMYIpOBAHIR MonerbI DOM, oSpaGorkst Ajax-sanpocon 1 coBbinitii, a Taloke antiwar. Sra GuGmnoreKa sanimMaer B HACTORULee BpeMs FOCHOACTHYION\ce NOMOXKcHHe cpemH BEX GuGmorex JavaScript. npUMcHAeMbr Ha COTRIX THICHY BeG-CaitTOR, Fe C HMMM HOCTOREHO CranKHEmOTeR MiUUMONE Toms0BaTeNeH, Braromapa €¢ HITCHCHBHOMY MpiIMeHeHsHO 1 EpUTIMeCKUM OTSiENAM NOmIOBATENeIt VTA GUEMOTeKA GbUIA C roAaMH YTOMHCHA Ht YCOBEP- MIcHCTHOBaHIa 10 CoBpeNeHHOrO BHAA OITUMAIbHOH KOLOBO Gast. Tlowumo mpuimepon Kona 13 6u6nH0TeKH jQuery, » stoi KHure 6yayr TakcKe paccMorpe- HAI MeTOAHIKH, PeamBoRAHnbte B CTeRyIOMLHX GUGAMOTEKAX. ™ Prototype (http: //prototypejs.org). Mpeacrasaser co6oti mpoo6pas scex coppementibix OnGmorex JavaScript. Coanana 1 nemynerta Comom CrupeHcoHom (Sam Stephenson) » 2005 ropy. Bruovaer B ce6A (py nKIMOHATBELIe BOIMOXHOCTH DOM, Ajax 1 o6paGorkn coGMITHi, a Take pies! OGBeKTHO-OputerTMponauHoro, ACTeKTHO-OpHeHTHponanHoro 1 (byHKioHabHOTO NporpamMupoBaHita. ™ Yahoo UI (http: //developer . yahoo. com/yui). SInmsich peaynbrarom coBcTBEH: Hod paspa6orku mrterpHponaHHoii cpeabi n Konmaniu Yahoo, npematta DtacHOCTH B sewpare 2006 rona. Brauer B cea dpyinaontatnite nosMoxknocta DOM, Ajax, O6paGorKn coGsrTHit M aRHMALNIM, a TaKxe Henbiii pal KIpeABApuTeMLHO HOCTpOEH- EHIX BHYpKeTOS (MHEE-NpHIOxKeHMtti THIa KANeNLAAps, CETKH, MeHIO-TAapMOUIKH 1 ITpo- nero). @ base? (ht tp: //code. google . com/p/base2). Coanana Jnttom Sxsapacom (Dean Edwards) 1 suunymena 8 mapte 2007 roga aa rloaaepaKKi byHRUMOHATBELIX BOS Moxnocteit DOM 1 o6paborkn cobnrrnti. Tipereniyer #a M3necTHOCTE CBOMMH To- Torrkann pewunosar patie crenipukantn crarapta W3C (Korcopuuysa Beenupro#i naytunist) yanoepcanbrom, xpoceSpaysepHoMm Brine. Bee yromanytnie Benue 6uG7HOTEKH rpaMoTHo NOCTpocHAM, {OGHI BCECTOPOHHE OxBa- TARATS Te MPOGeMHbic OG TACTH, JVI KOTOPBIX ORI paspaboTaitul. HMeuo MOgTOMY OF Ht CAyKAT YAOGHBIM OcHORAIIEM JU1s AaMHeHInero axami3a. Tpamimnoe npeacranienrie O6 Ockonoriomaraiomelt KOHICTpyIaBNT THX KOAOBLX Gad HOSBONKET JUULE NOHATE, KAK CAEAVET CTPOUTE KPyHByIo MepwoKtaccuylo Gud.noTeKy Ha JavaScript. Ho pacemarprmaesnte anech CNOcOBuE M MpHE MI IPHPOANEI He TONBKO Js NOCTpocHHa Kpyriuuix GuGaAUOTeK. Hx MOXKHO MpUMeH AT» BO RCex CAy-tasx nporpaMMurposaHiis Ha JavaScript HesanKiCHMo OT OGREMA KONA. Crpysrypy 6uGanorexs JavaScript moxks10 paatemrre Ha ‘Tpit vaca. & Pactuupeunoe npumencune sapika tporpammnponanna JavaScript © Luwreapnoe nocrpociie Kpoce-6payacproro Kona. @ Tipumenerne nesoro pana nepenonsx mMeTonUK, cBssIBAIOTUENK BCE 9TO BMECTE. Tiaea 1. Baedenue # ucrycemeo npospaxmuposanua na JavaScript — Mut Gyaem noapoGrio axantanponars a1 TpH dacTH KaXIO! HS yROMAYTEEX BELUTE 611 Gantorex, «roGer 2am» MozHOE NPEACTABTEHHE 0 TOM, KAk COamATe COBCTBEHIBIE ad>MpeKTHt Hple KoAOBBIC Gaset Ha JavaScript. OG6ujee npegctasnenve o s3bike JavaScript To mepe cuoero nporpeccuonantnoro pocra Gonbutnerso r1porpaMMupvioMnx 4: JavaScript Tak 1m mHave xoxonst 20 Toro MoMeRTTa, KOrya OFM HAWIKIOT AKTHBEO BATBCH B CHOCM KOE PaLVAHTHbIMH JISLIKOBLAMH 3EMEHTAMH, BKMOWAS OOBCKTHI, OGSITHERIMI JOKE AHONHMEBIMS BCTPaHnaeMHIMH cy HKITLMMH, ECAH, KOHEUHO, OFM CAeRAT 3a 7 MeHHAMH TeHAeHUHAME B Nporpanemponanttt, Ho Hx HaBbIKH MporpaMMEIpoRaMns, Kal NPABHAO, PEAKO BRIXOAST 3a PAMKH CaMOro OcHOBHOrO ypositn. KpoMe TOTO, OH OGLIHO OueHb MIOXo NpeACTanamOT ceGe HasHAvEHHE H peatHsaiutio Janeanuil n JavaScript A beab 9TO NOHATHE TOMOFAET OKORYATENLHO YACHITTS ocO60e sHAYCHHE CYHKUE ALI att HOO s3BIKa NPOrpaMMinponartia. Bockony JavaScript nosoxerta TecHas nsaHMOCHAaG MEKAY OGREKTAMEE, by KINO I 3 Morkannanat (puc. 1.1). AcHoe mpegctasaerie 0 CHABHOM BIAMMOCBASHT MEXIY STHMI TOME ‘Tuan NosnonaeT 3aMeTHO yCORePUICHCTBOBATS HABKIKH MPorpamMliponantia Ha JavaScript, saKAAbIBAA OCHOBL JUIR paspaGOTKH MIpHuioxkeHMit m0Goro Tuma. Mendy OBpexmancs, Gyrn yur U seaMEcKanUnsed Muorne paspa6orunin ne6-npnioxenuit Ha JavaScript, ocoGeHHo MMeIOUIMe HaBMIKt OGLeKTHO-OPHEHTHPORAHHOTO MpOrpaMMi[POBANH, MOFYT YACMAT OCHOBHOE BHEMAHHE OGbexram, HEAOCTATONHO MPEACTAR.AIA TOT RKTAA, KOTOPHIi CPVEKLUTU M saMatkaltiia BHOCHT BoGtuvIo Kaprnny. Tomumo srux OcHOBOTONArAOLIUSX HOHRTHIT, HMEIOTCH EINE Ba CPEACTBA, RCE CHIE CHIBHO HEAOOLEHEUILIE B NpAkTHKe uporpamamMponanns Ha JavaScript: Talimepbl 1 peryanpetere nbipaxenma. O6a cpeacrea Haxoastr npHMeHeHtie 6yKBATEHO B KAKLOF KORO boii Gaze Ha JavaScript, HO MX NOTEHIULT PackpLInAeTCA MOAHOCTHIO He BCCTIA W534 HELO- Crarouto ACHOTO TOHMaNHs Hx xapakTepa. B wacTHoctH, npuMiii jevicr#na Taitmepon 1B Gpaysepe (UU MNOTX ABAKETCH NOAHOH 3AraAKOiL, a BEAL ICHOE TIpeACTABACHHE 0 TOM,| Kak Onn! paGoTaWOT, NOIBOARET petaTs TaKHE CLOmKHHIE 3a;{auik MpOFpaMMupORAHMA, KAK,| HaNpuMep, opramsargra JurrenbHX soecreHtil 1 TuaBHOH aiumansi, Kpome toro, C- Hoe npeacranaenne o npithunrie zelicTBHH peryampHNK BMpaxenuil AAeT HOSMOKHOCTE C- Jysarb parMenrHr OFeHh upocroro u shPckTHBHOTO KOA, KOTOPBIE B IPOTHRHOM CAYTAC| BAUACTY}O OKASBIBAOTCR AOBOARNO CLOKHBIMIT. Ee ognoii BaxHOii LeXO/i Ha NYTH K Gozce yravéneHHOMY noHTMaHIO ocoGeHHoCTeH scbika JavaScript smasetea paccmotpenne oncparopa with p enine LO. Merona eval () 8 Diane 9. Ofa 9TH ssbKoRBIe CpencTBa NpeBpaitleHibt B OGINCE MeCTO, HeNpaLiLTbHO NIpUMeHs| lorca 1 OTKPOBEHHO NUpHwoTca GomIMTACTBOM NporpaMMapyionytsx Ha JavaScript. 28 Yacme IM. Obynenue xandudama @ macmepa Mpvmevanue Tem, KTO BHHMATEAHO CIeAMT 3a COBPEMERHBIMH TEHEHUNAMH B paspaGorKe neGNPHAOKCHH, LOMKHO GIT HSBECTHO, ITO O6a STH AIBIKOBbIC CpeACTBa NpH- SHaHbI NipOTHROpeNHBbIMH, a HX NpUMeHENe NpeqMONaracTea OrpaHMAHTh WK BOOGIE HE PeKOMEHAOBAT B HOCTEAyOUUEX PEpCHAX JavaScript. Ho ecm 9TH HBr KOBHIC CPeACTBA BCTPCTITCA BAM B CYINCCTBYIONIEM KO/[C, TO HX HasHaueHHe BCE Ke HYKHO BHAT, eOKE CCAM BBI H HE COOMPAeTECk HOALIOBATECH HME B HOBOM KOC. Ho cca nocmorpert Ha oGpaaun Tpyra myUIHX NporpamMucTOD, TO HeTpyAHO 3aMe- “TAT, *#TO NPH MpanseIbHOM IMPHMeHEHIIH O68 VROMAHYTHNX AIHIKOBDIX CpeICTBA NOSBONTIOT coatabaTb BechMa H3AWHBIE dpparMeHTE! Kowa, KOTOpKIe HEmbas noaysrT unaie, Bens 10 GONbIIOMY CYETY 3TH CPeACTBA MOXKHO wKe MPUMeHATD JA yNpaxHeHMit B MeTanporpan- MHpOBaHHH, BLLIETLUTBAs 13 saroTOBKH JavaScript Kaxyio yroawo popmy. YeMenite GnaropasyMHo NOLSOBATECA PACIIMPEHHGIMH SGLIKOBKIMH NORTHAM A Cpe CTmaMH LOWKHO, Ges COMHEHHS, 61aTOTROPNO CKasATECH Ha KAMECTRE COBABACMOFO KONA. A Orrauxpanve HaBbIkOB YMeNOTO BIAEHHA HMM JOBOAHT Hallle OHMMAHMe s3aniKa 10 TAKO- TO YpoBH, Ha KOTOPOM HaM OKaSMIBACTCR TO Tey paspaborka npakrHueckn moGoro TNA Tpiioxerna na JavaScript. H oto nocayarrr Han npouriM OCHOBAlHeM sir NposBHOKeHER BHeped, HavHHad ¢ HAMMcaHHA HalexHOrO Kpoce-GpayacpHOrO Kora. Coo6paxkeHua no noBosy Kpocc-6pay3sepHon paspa6oTkn Conepiicncrsonaline HassiKos porpanMnposannst Ha JavaScript urxpeinacr uMApuRiie TopHaontst, ocoberHo TeNeps, Korma MpHMenerue JavaScript BLAusI6 3a npexemts Gpaysepon H OCTHITXO cepnepos B TaKHX MexaHUsMax, Kak Rhino u V8, a Taloke OuGmHOTeKax THA Node,js. Ho kona nero xoxoarer 40 paspaGorKn OpaysepHbix upriokeHuti Ha JavaScript, a MMeHHO 3TOMY HPeUMETY NOCBAMEHA TANHAM KTHTA, TO palo HUH NosAKo NpHxOnETCR Cras KMBATECH ¢ CANIM Opaysepaxtn BECEMA HEMpHATHDIMA BOTIPOCAMH HX HECOBMECTHMOCTH. B ugcamriom cryvae Bce Gpaysepbl 1OKHE paGoTaTe GesoMNGOSHO H NOLEpxHBATh Ha nocTomtO! OCHOBe BeF-CralapTH, HO BCEM aM XOpOMO HABECTHO, TO B eliCTBHTE TE: HOCTH e710 OGcTOHT concen mHade. KavecTHo GpayscpoE 3a OCT AHCE BpeMs BHALITTEHO YAYYUIWNIOCE, TeM He Meiee TIM To-NpExKHEMy MPLCYUL Mporpamntute OUUKGKH, OTCyTCTBUE HeoGxo/UMEIX NpMKTAMHLNX HItTepPericon API H xapakrepHute OCOHCHHOCTH paHorel, KOTO- Pile MpHxojutTeA yurrsiBaTE npa paspaborKe BeG-TpWioKeuMit, BerpaGuTath KUMILIEKCHYIO Ctparermo paspelicHita sarpyaHeHuii, CBAsAHLUBIX ¢ OpayaepaMit. H XOPOIIO 3HaTe HX OTE ‘iA H OcoGeHHOCTH paOOTHI He MeHce BaxHO, CCAM HE BAXKHEe, YeM TpaMOTHO Mporpannsr ponare ta JavaScript Tipu nanvcanim Gpaysepaaix mpwioxennit WH npHMensemm B HHX GHGm0- Tek JavaScript ovenb paxdio npanrimsto BBIGpate NO;CPAKY KOHKPeTHBM Gpay2epos. Pasyueeres, xerenoch 614 NosCp>KHBATS BCE HMCIOMIMECA Gpaysepbl, HO OTPAaHHMYeHUssL, Hae aaRbIBAeMBIE Ha PEcypch! paspaGOTKH H TECTHPOBAHKU, ANKTYIOT COBEPIUEHHO HHO! MOM Xoyt. Tak Kak ake PEUILITD. “Oo MMEHHO H Ha KAKOM yponHte CleayeT nogaepaxunars? Aula orera Ha 9TOT ROTPPOC MBI MOxKeM MUSaIMCTHOKATE Crapbiii HOAXOA, NPHUSTEIA E BeG-cayac6ax Yahoo! 1 HaspiBaemetit Kaaccuduxayueli noddepacu Spawepoe. pet TAKOM ORXO- AC Mbt Coaqaem maTpniy OAepARKH GpaysepOB, KOTOPAK CY KMT B KANECTHE MOMEHTAALHO- To crunk, OTpaskwOUlero BaxkHOCTE Opaysepa H ETO TLIaTtpopMbl Ais HANI OTPeGHOCTeH. B rakom maTpuunom mpencrasneHun teneaste rarcbopant yKaanmarorcs 10 onHO# CM, 2 Trasa 1. Boedenue a uexyccméo npoepanxtiposanua na JavaScript Spaysepni — no apyroii. Saves B Omens AHeiKAX MaTpHUIE KAKO! KOMGHHALULE Gpal sepa H natcbopmni npHesaroreaeres onpeneneHuiit kacc (or A 20 E, XOTA JA 9TOH Net MoxeT GbITh HCHOMbIOBAHA H PyTAs CHCTEMA KIACCHIPUIKALHH B 3ABHCHMOCTHT OF KOH] nuxx noTpeGuocreit). [imoreriectatii nprimep NoxOGHO! Marpune mpuBexeH B-Ta6A. LL Ta6nuya 1.1, TunoteTuvecknlt prep marpniibi nonaepmKn GpaysepoR Windows Mac OS X Linux ios Android J 16 Orcyrcrayer —Orcyroteyer —Oroyrcrayer—_Orcyrcrayer 1E7,8 Orcyrcreyer — Orcyrcrayer —Orcyrcreyer = Orcyrerayer leg Orcyrcreyer Orcyrcteyer —Oreyromyet —_Oroyrcrayer Firefox Orcyrcreyer Chrome Safari Oreyrereyer Orcyrereyer Opera O6parure BHHMane Ha TO, ¥ro B AAaHHOH MarpHue sanonHeHN He ce metiKH. Fp ceanmanure K1aCCOB KOHKpeTHO! KOMOMEHANHH Iitarrbopmni H Gpaysepa nosmocTsH saBHcit Kak OT TpeGonaHnii BLINOAHFeMOTO MPOCKTA, TAK H OT ApyFHX BAKHLX (akTOpos, B TO wicne cocrasa yereRoii aynuTopun. FpuMmenss nox06Hbiii MoAKOR, MoxKHO paspa6orar! cucremy Kraccudikannn, B KOTOpOt ONpesenAeTCR BAKHOCTS NOLLEPxKM ALIaTthopMEt Spaysepa, o6beaHHHB aTy HHCpopMatuno CO CTOHMOCTEIO TaKOH Ose P>RKH, HTOGLI BBINBUT! ONTHMaAbHBI Cocra TOMepxHBAeMBIX Gpaysepon. Bonce nonpoGHo stot Bompoc 6yne4 pacemanpunareca e riare I. B nosceguesuoii npaxTuKe nporpammmponarmna neyenecoobpasvo paspabaTnBats npH HOCH, pACCHHTARHBIE Cpasy Ha GoTEMIGe "HCAO TuaTtpopM H Gpaysepos, HOsTOMY xe €T CMbICT BARECHTS SATpari 1 MPEHMYLICCTBA TOMLEPIKKH PAIIH4HBIX 6paysepor. B 060% ToAO6HOTO porta aHaTH3e HEOGXO;UMO NPAHIMATS Bo BHUMasHe MHOTHE dpakTopEt. HK NepesHcrenbl CaMbie PMABHIbIE M3 HX. © Oxa zanna 1 norpeCHoctn uexenoi aysurropin. © Jlons Gpaysepa na ponixe. @ Sarparer tpyna Ha nomepxKKy Gpaysepa. Tepasiit charrop Hocur josonpHo cyGvexnnmtulit xapakrep 1 onpenennerca B paMkay KouxpeTHoro upoexra. C apyroii croponisi, nom Gpaysepa Ha puilike MoxHo sa4acTyX onpezemtrs ¢ 2OcTaTOUHOH CTenteHiIo TOMHOCTH Ha OcHOBAKTI UMeloMetien HHepopMarent A nipuGamatrensiyio onerky saTpar tpyaa Ha NOME pAKKY KaxkKAOTO Spaysepa MO%UO UPOXS RECTH, YuNTEIBAs (PYHKUMOHAIBHbIC BOSMOXHOCTH GpayscpoB M COGAOACHHE B HX COBpe MeHHBIx ne6-cranmapron. Ha pac. 1.2 npuwezer npumep auarpanniel, HamsyIHO Mpexctanmonici cnesentist O6 HC Nomsogaxiin Gpaysepos (HOyYeHBI ¢ ne-caitra StatCounter aa anryct 2012 roma) Ht MABE AYANBHLIe OLleHKH CTouMOCTH saTpaT Ha paspaGorKy npILIOKeHUi LIM CaMbIx pacMpocTpal HeHtnx Gpaysepos. Cocranienue Takoii JuiarpaMMbl 3aBHCHMOCTH 3aTpaT OT TIPEAMYIIECTH TlomaepxKu Gpaysepos MOsBONAET Cpasy XE ONERUTS, Kya HMCHHO CreqyeT HanpanHrn ycr AH. Trou NOyET, KaHGonnanae OTTAHY OT RIOKeHEBN peters. H3 stoi yuarpaMness MOKHO CRenaTe CreAyIOUIHE BbIBOABL. 30 [1 Mromapucern0 (norm puss) Gpeyaepa RIN] Sarper (xa pacpadony w recrupoRarHe NO) Puc, 1.2, Ananus sampam 6 cpasneniu ¢ npewwecmaare nodiepacxu parmuentix Spaxsepoe dna Hacmanneix cuCMeM noKassEGEM, KYdA LKeKNO CUROYeM HanpaaUME youLUR paspaGomuUKoE @ Hecmorps Ha To ¥ro 78 HoAtcp%KH Gpaysepow Internet Explorer 7 u 8 Tpe6y- eres HaHoro Gombule 3aTpaT Tpyna, eM Ha Spayscpbl, B KOTOpHIX coBmonaloT ca peG-crangaprel, HM TO-NPOKHEMY NpHHALIEKNT SHAMHTEMBHAR OKA pEIHKa. Caenovareasno, AonoanMTeRHble SarpaTel Tpyza 1a HX HOMLepKKY BNOAHE OrpaB- JAHHB!, CTU HX TOmIORATENN OTHOCETCA K RAXKHOI HeACBOM ayzuTOpiH paspabaTEr RaeMoro MpHiOKeHHA. @ Braronaps tomy sto » Gpaysepe IE. 9 crear Kpynitie uarH » Cropory co6mojemna neG-crarfapTos, HoAAepANBATE Ero CTAIO Jere. eM TIpeABIAyWMe BepcHit. K toMy 2K€ OH TIOCTETIEHHO OTBOEREINAET cROIO ROMO Ha PHINTKe. @ Toarepxxa 6paysepos Firefox 1 Chrome ne spiabinaet CoMHeHItH, HOCKONBKY HM MpHHAIOKHT sHaIHTeEMDHAR AOA PHITKA, Ja H CAMy TONIepKKY OpranUsonaTh He Tpyatto. 1 Hecmorpa na To «70 6payaepy Safari nprnaqtexiT oTHOCHTEMMHO ManAR AOAK PHIKA, OF nce dke BaeTVRUNACT NOAACPAKH, NOCKONDKY B Hem COBMOgAOTEH BEC-CTaNApTb), NTO CyMECTREHHO CrDKaeT BaTpaTHl HA ero NOAAepARKy. (CyutecTHyeT sMTpATEECKoE mpaniino: ecm Ref upnzorwKeHe paboract B 6payacpe Chrome, To ouo, CKUpce BETO, Gyner paGorar» u x Gpaysepe Safari, kpoMe mTomormeckux crystaen.) ® Hecsorpa na To uro zis nomepaKu Spayzepa Opera tpebyerea He Gomme sarpat Tpyza, Yen Ha nosacpxxy 6paysepa Safari. p HACTOMbEEX CHCTEMAK 9TO MOXKET OKA- 3ATLCH HEBLIFOAHLIM, NOCKOTKY EMy NpIHaTIOKuT ONeHS Mataa gona pera. Ho cn paspaGorKa negeTes sit MOGHABHBIX TUATtpopM, TO adecb Gpaysepy Opera up nasIeKuT sHaMITeNbHAR JOA PbiniKa, Kak MOKasaHO Ha pttc. 1.3. O noaaepaxe 6paysepa IE.6 Ht peu Serre He Moxer, KaK CresyeT 43 MaTepHaTa, Ips nemetmore no aapecy www. ie6countdown .com. Crommocrs sarpar Ha Kpoce-6payseprvio paspafiorxy MoxkeT # snawirrensHoll crenest SanliceTs OF RRaMpHKALWHM M OMBITa CaMMX paspaGoTHnKos. | ata KHHIFa MpHseAsa HOUBE CHTb yponciip KnamiuKayia Tex uMTaTeneli, KOTOPHE B 3TOM KPOBHO 3astHrTepecOBAMBI. Praaa 1. Baedenue 6 ucryccmeo npoepannuposanus xa JavaScript 34} Hlostomy nepeivtem x paceMoTperitio Hamiveuinx m HaCTORILee BpeMsl, atpoSHPoRaH Ha paxtuke, nepeaonbix METOANK. Opera Android-_——Safari Nokia Blackberry [77] Mpenmyuiscr80 (none pesrixa) Spaysepa [ERR serpane (1a paspatomy » Tecrrponasie N10) Puc. 1.3. Ha nobuxnwx naampopmax, te sampamee na noddepacry Gpaysepoe pacnpeders tamcs dosaxno pasnonefma, secs awaius caoduemcs k Cmamuucmatke ucnansaoeareun Spaaynpos Nepegosbie metoquku Konewro. numer xoponufe Hapnckit mporpasmiponatitia Ha JavaScript v commenti onere asTopcKoii paspaGorkH Kpocc-fpay3cpHOro KONA HHKOTa He TOMeUIaeT, HO TO eUle HE BCE. Aaa tore wro6s crave no-nacToRieMy KRAMKCpIIUIpOBAKNIBIM paspa6oTaKOM MPHAOHKe- Hnii va JavaScript, HeoBxogiIMo TaloKe OCBONTE HAMLAY ste OBpastibi, MpHeMbt M CHOCOGE!, HAKOTLICHIBIC B NPOTpAMMATPORAHHM NpeALLTVUIAUMEE HOKONEWUANE paspaGOTYHKOB Ais Ha- MHcanMs KavecTBeHHoro Koga. ITH O6pasiint, UPHeMnt H COCOGM HaaBmaIoTeH mepedowuset Memoduxanu 4 MOApOGNO paccMaTpHBaOTCs w Wane 2. HomuUmo CONEPIIEHHOTO BALCH AAbIKOM NporpamMirposariig, OHM BKOAOT B CeGA CTEAYIOUUME SeMEHTEL. | Tecruponanie, © Ananns nponssogurrennuocr. = Ovraaxa mporpamm. Tipu nanncanin Koga OveH BAKHO TIpHAepKUBATLCK STHX MeTOsI, YTO B KPOCC- Opayseproi paspaGorKe sayactyio ce6a snoaHe onpaspmaer. PaccMorpiM age 43 3THX Repedonnix MeTomsK. Nepenosas metoanka Tectuposanna B opuinepax. npimeneninix 8 stot Kemure, we GyzeM AKTHBHO TOMIORATECH HELM ps JOM ChOcoGos TECH posAHHA, KOTOPBIC NOCTYKAT HE TOABKO JUL (pOBCPKEH MpABHTbHOCTH Kova. BEIMOMHSEMOTO B STIX MPHIMe pax. HO HB Kavectue OGpasua 1K TeCrupomasus KOA sooGmye. OCHOBHLIM HACTPYMeHTAIBHBIM CPeACTBOM, KOTOPHIM MBI BYREM MOMSORITACS LIL 32 Yacme ll. Ob6puenue xandudama 6 macmepa -recrnponaiia Koma, capkur dpynxinis assert (), Haswavennie KoTopolt ~ yrucpanre, ro Hrexomvaa npeAnockLiKa HcTHHHA 114 7OKHa. Tak BItAsaT oGuIas dhopma TOM pyHKau: assert (ycnopne, cootmerve) 7 me » KanteCTne MlepsOTO NapaMeTpa YKASLIBACTEA YCNOBUE, KOTOPOE AO.DAHO Gurr MCTHE an KaueCtne BTOPOTO HapameTpa — COCSLEHHE, BHIBOUMOE B TIPOTHBHOM CTY*ae. Pacemutpa caeryioutiii MpHMep: assert (a -= 1, "Disaster! a is not 1!"); Eeatt anauenne nepementioii a He passio 1, yTBepiKIeHHe HE BBITOMILIETCH BbIDOITCS npeaynperuiaioutee 06 9toM coobmneHHe. Crenyer umeTs n Buy, sro dpyuxiyi assert () He oTHOCHTEH x coGCTRCHHDIM HSEIKORDIM cpenctoam JavaScript, XoTA n Apyritx aENKAX, HanpeIMeD 8 Java, NOAOGUBIE cpeACTHA FECTS ponanis! mpenocramsuorcs. [ostomy Han MpHAeTCH peamsonaTe STy GyyHKILIIO CaMOCTOR: ‘Tembho. O TOM, KaK 3TO CeNATE, peub Holter B rane 2. Nepeposan MeToAnka aHanu3a NPOMSBOAMTeENbHOCTU Tipyrum, ne mene saxiibiM npakTinieckim MpHeMoM ABALETEA altATiES NPOHSBONVTE nocri, Mexanuravna JavaScript, neficrayionite B 6paysepax, mperephent siiassrTeTbHEIe YCO- BepIleHCrBOsaHNa C TONKM apeNHis NportspoAMTEMHOCTH CaMoro sui JavaScript, Ho STO COBCEM He OaNAIAET, ITO MOKHO MHCaTe HeaKKypaTublit H Head(peKTHBHDI KOR TIpimenermeist minke cpparmeHtom Koza si Gygem NOmSOBATLCA Aatee B 9TOH KeMTe L c6opa AaHHBIX 0 NPOHSBOAHMTEMBHOCTH. start - new Date() .getTime ( for (var n= /* sainonauTh MSMepRemyp onepaynn */ i elapsed = new Date().getTime() - start; assert (true, "Measured time: " + elapsed); Brnpuneneruom sune dpparnterrre HemomHette HsstepmeMOrO KO/IA SAK TONETCH B BHTKY Mexay BpeMeHHLIMH MeTKAMH CGopa aHHBIX: ORHOM NO BLITOMEHMS KORA H APYTOH NOCTE nero. ODMUHE B STHX BpEMeHeAX MCTKAX HOKAKYT, KaK AOATO BHITOMURETCH KOR. Fras we CHOcOGOM MoxkHo CpaBHHT AIBTEpHaTHHithle BapUAHTH! BLINOTHEHHA KOAA- Kax niuarrre, Kou B aston mpuMepe BHMONHSeTCR MHOTOKpaTHO, W214 STOH Wem Cy aarr nepemestias maxCount. HafekHo UsMepitTs ONHOKPaTHOE BLINOAHEHME KORA ONEHE ‘TPYAHO, MOCKOALKY OHO NpOHCXOZHT OFEHE GkICTPO, HOBTOMY AAA NOAYYeHHA H3MEPHMEN: BeNMUEH KOA NPHXO/HTCH RLINOAHAT HeOAHOKpaTHO, 3avacTy!O KomecrBO HOBTOpeHtit OMA UCHHCAAeTCA AECATKAMM, COTHAMM THICH WLIK HaKE MATAMOHAMH B SABHCHMOCTH OT xapaxrepa HsMepsemoro Kona. Monxonauice sHadeHne nepemenHoli maxCount MOoHO HO oGpare meToa0M npo6 # oMmMGOK. Pacemorpentiite BHIIIC 1 pyTHe MepeROBBIE METORHKE, KOTOPEIE GyzyT MpeACTAnTeHEt nance » xaure, anausrenHoit mcpe CHOCOBCTBYIOT YCOREPUICHCTRORAHMTO paspaGorea BO npiro ceri Ha JavaScript. ZLis paspaGonar Taxyx mpiorkeniit C orpanlversHoast PCy” cast, npegxocrasanemninit 6paysepoM, HPOCTO HEOGXOAMME! NPOTHEIC H MOTHLIE HaBbIkHt NporpaMmnposanin, ocoGeHo CCTM YECT NOCTOAHHOE YOIORHEHHE ¢pyHRIUTOHA TEE BOIMORHOCTEH H COBMECTHMOCTH Gpaysepon. Thaga 1. Baedenue 6 ucxyecman npoepaumuposanun na JavaScript 33 Pesiome Tlonweaem xpariatit sor Tomy, wo tu yanaa 1 9roHt masts. § Kpoce-6paysepnas paspa6orka Be6- Kpocedpayaepnas a 2 peG-mpwiomenlt— eno Nenpocroe, HaMsior0 Gonee © aa toro sro6s1 mpeycnets B Het, r |. HPRHO HE TOMBKO OBIAETS B ConepmieHc: ron JavaScript, Ho m xopotio anare ocoBetmiocrs paGorss Gpayaepon’ wx cuneaa cra6nie HEI po6zemel He WMOCTH, a TaKWKe NPHTep KH lecoumecn cropor 5 A BATHCA CTAH- @ He Heoworpa ha nce tpyatiocT#t paapaGoniar wa JavaScript, €ems ean, rorops YRC npomumt grow repuncrat yrs Kc mca OTHocHTC paper Gu6amoren ! onsrrow, nponemoHterpuponanutsin mpi noctpocrt AOBbIX Ga3, MBI MOAKEM BOCTIO.N3O1 rro6s1 aque obec 2 i Gast (eM Bo paTECA, -KTHBHO urs cuclt apoe- wansixop paspa6OTKHs, HOAHAB HX No yponHia Muuponoro Kaacca, Haysenne nogo6Horo onprra, 6e: (OYWHTENHBIM HT 1. GesycnonHo, 6yneT oAesHEIM, 11 po- 1. Boopycenue cpedcme mecmuposanun U OMAAOKU Hoctpoerme adxpexrunioro naGopa Tecros suas paspaGarsinaemoro Kona MMeeT HeTIpexoA ince sHaveHite, NOSTOMy paccMoTpHM ITY TeMy, peak YeM Tlepexonure K O6cy>KXEHHIO JHO- ux ponpocos nporpamnurponamis, Halekiaa MeTomika Tecrispowaiis ‘Tpe6yercn 118 aceco KOAa, HO Ova OCOGEHHO RaAKHA B TeX CIYYAMX, KONA BHCMIIHe caxTopsl MOTYT OKAINIBATS DMSHIHE Ha BEINONIeHHe KOJa, a HMEHHO € TaKoit CHTyauieit s1aM NPHXOMTCH CTANKHBATECR "PH paspaGorKe Kpocc-GpaysepHiix npHoxennit 1a JavaScript. H geno ne Tomo nom, «To Ha OAHOH KOJORO!T Gasol ONMOBPEMEHHO MOXET paGorars. HEcKOTBKO paspaGOTUHKOB, & PesyiiTaTe wero OGpasyiOTCH pasoprannie vacrw npuxnag UOro metepeiica API (oto TunuumBie TpyAHOCTH, ¢ KOTOPHIMH NPUXOMTTEH HMETE [e10 PceM tIpOrpaMMHicTaM), HO 11 B TOM, "TO paspa6arsiwaeMilt KOA MIPHXONUTCA nporepsre 1a COPMECTHMOCTS CO BCEMH NOMIC xMBAeMEIMM GpaysepaMn. Bonpoce: paspa6orn Kpoce-Opayzepiinix nprioxe nuit Gonee yrny6enHo 6yzyT pacema- ‘Putarica 8 rave 11, me pew noiiaer o crparerusix Kanucanua Kpoce-GpaysepHoro Kosa, Aa0 tex nop ovens BakHO BRACKETS BOUpOCEI H ONpexemTs crpareruu TecrupoBattits, HOCKOAbKY HaM NPHACTCH HOMbIOBATECH Hit B OCTATbHUH daCTHL HM. B oroit mane mmx paccMoTpum HeKoTOpite UHICTPYMeHTATEIEIe Cpenctsa x MeTOMIKH OT Zauiar kona JavaScript, copmsposasian TecTOD Ha OCHONAHMN PeaymsraTon OLEAN It ho. “TPoeHis na6opa TecToR As HALEKHOTO BBINOAHEHAA NocacaMHX. 36 Yacms I. Havaso nymu Otnapka kona Bit, neporrao, nomavre, ero ovzanka Kona JavaScript panniue osavara OOpamensie x gymeygut alert () sim npowepk savers nepementinix. 3a NOCAEAHHE FOAL BOSMON: HOCTH OT7ARKH Kona JavaScript SHATHTEMbHO pacluMpILIch M HE B NOCAeTHIO!W ONCPET Gnarompa mnpoxomy pacnpoctpakexmo pacumperma Firebug Opaysepa Firefox ana neG- paspaGoTxn. ANarornuniie cpencTaa Be6-paspaGOTkH HMeIOTCS Teflepb H 8 APYTHX OCHOB- bIx 6paysepos. Firebug —umpoxo pacnpocrpaxiesttoe pactmpentne Opaysepa Firefox xin paspabor- uskon (http: / /firebug. ru). © Cpenctsa paspa6orumea IE — axmovennt » cocras 6paysepa Internet Explorer 8 1 Goxtee roaaseli Bepasi. Opera Dragonfly — »xogurt » cocran 6paysepa Opera 9.5 11H Gone nosaneli nepcwm, aTakxe paboraer ¢ MomIbHBINN BepeHsMi Opera. © Cpencrwa paspaGorunxa WebKit — sxmouen n cocras 6paysepa Safari 8 u sravurrenb- Ho yconeplicHcrnonaiibi B pepe Safari 4, a Teneps zocrynne1 U1 Gpaysepa Chrome. Ornanxa Koya JavaScript emTca Ha qne BaXKHBIe COCTABTMOULWE: PerHCTPAIHA Pesysth- Taros M TOUKu mpepsisanna. H TO H Apyroe NOMeSHO JUIA OTTAAKH KONA B ORHOM H TOI Ke curryaiistnt, HO TION PastibIM YOM Bperitts. ITO AaeT BOIMORHOCTE BLIACHHTH, WTO KE HA CA MOM J€N€ MPOMCXONUIT B KONKPeTHO! CrpoKe Kona. PaccMOTPHM CHatasia PerHCTpALMO pe- ayquTaron. Pernctpayusa pesynbTaTos Oneparopss pericrpanum (3 KauecTBe MpHMepa MOXKHO ykasaTe Ha NpUMeHEHHe MeTO- ga console.1og() » 6paysepax Firebug, Safari, Chrome, Internet Explorer # nocaeaxux nepertiax Opera) smasiores sacTiio Koza (I1yckafi # BpeMeHHO), 1 OSTOMY OM MONeSHBI owraakn xpoce-SpaysepHoro Konia. Beisonbl onepaTopos PerHicTpalliiH PeaysLsTaTOB MOXKHO JeMATb HENOCPeACTBEHHO B OTKUBACMOM KOE, MOMyWAA OTMAAOWHYTO HHCHOPMALIHIO 13 CO- ObIjeHitH, BHIBOZMMBIX Ha KOHCOMH BCEX COBPEMEHHLIX 6pay3epon. Tlo cpasuento co crapbim MeTozoM BhIBOna NpeAypexTeHHA Ha CrpaHiie mpouece THeTpanun Ha KOHCOnaX 6paysepon SHAuHTTENBHO ycoRepilicHCTBoBaNca. Teriepb Bce onepa: ‘ropbi Moryr Gerrs cocpenoToueHt Ha OmHOF KOHCOAM H Jace MpocmoTperttl B 1k060H Y) Hiblit MOMeHT, He Meliat HOPMaILHOMY XOJY BBINOAHEHHA MporpaMMB!, wero HEMI Onin noGurTeca panbuie ¢ HoMOMBIO pyHKIpM alert ()- Tax, ecnn Tpe6yerca BLUICHUTS aHaYEHHe NepeMeHHOH x B KOHKPeTHBIi MOMEHT BbITIO! HeHMIA KORA, IA STOFO AOCTATONHO HaNHCaTh CHEMYIOUUE CTPOKH KOA: var x = 213; console.log (x); Peaynurar BhinoaHeHns 9Toro pparMextTa Koza ¢ oneparopom pernicrpanuut 8 6payse} Chrome npa axtrmraitponarnoti Koncomm JavaScript mpttnesex 1a puc. 2.1. B npexausx mepcusx 6paysepa Opera perncrpatina pesymsratos npowssonmrach 6biM cnocodox: myrem peaisaLuin OpuruBaNHOTO MeToma postError (). [losromy ecm Tpebyeres pervictpanus peaymsraTon B NPOEXHMX REPCHsAX AAHHOTO Gpaysepa, TO, MOCTYTTU Gaaropaaysno, MoxHo peama0naTh MeTOR PerMcTpalMU Ha FONEE BBICOKOM YPOBHE, ero TIpHroguisiM sit ncex Opayaepos, KaK NOKasaHO 8 aMCrHure 2.1. Thasa 2. Boopy menue cpedemeamu mecmuposanua u omaadcu 37 Puc. 2.1. Pecucmpayus perynmamos noseonnem eudems axmucvecxoe cocmonxue x00d Tp 20 eumaanensis Juctunr 2.1. Npoctok metog otnapKw, pa6orarounii Bo BCex COBPEMEHHLIX Gpaysepax try { console.log.apply(console, arguments); catch(e) { A © Aperrinant nde try ( Sou 8 pesuenpanun ) Perri catch (e) { meen function log() { Mlorsima emp DER SapLtuchpupebsmd -) ceabavoes cane con na neq ) opera.postError.apply (opera, arguments) ;<¢—— © Towmanwa sipituenpupsecny wax . alert (Array.prototype.join.call (arguments, " "));— 1B Fe gpg ; ae Coser 2s moGonsrrcrayioux 6oxee nome napvant Kona us AMCTHMHA 2.1 HMeeTCH 0 See http: //patik.com/blog/complete-cross-browser-console- B npmmepe kona ua seria 2.1 cravasa npeanpusumaeres nomerrka saperHct pets cootinenne werorom, palorocnocobimn n omtinciseconpenennns Gpajepon ®. FO He yRActes CrenaTb, GyeT Creve pUpoBAHO HCKMOYEHHe, KOTOPOe nepexBaTEt seek ©: Mocse ero Moxwo nomtsTarics saperuetpHponaTs cooGuette opuruttabria Payzepa Opera metoom ©. Ec 2ke 06a 9TH MeToma He cpa6aTEma‘or, TO MpeconNTCH ThA K CrapoMy cnocoby aszaun npeaynpexaentii @. Npumeyanve B none 9 aMCTHNHa 2.1 MprMertsercn Meron apply () call () 13 KOHCTPYE P2 OGbexros THT Funct ion() a JavaScript za riepenaynt aprymertton Wa uc- x0dnott byrne w by mauno perucTpauum. SH BerloMoratembHBLe MeTOMB TIpeA- K @sHaveHn! 78 TOMHOTO ynpaBeHHA BEISORaMH dbyuKtut JavaScript m Goze non: POGHo paccarpunatorca » rnane 3. 38 Yacme 1. Havaso nymu Peruerpaitia pesymuraron, Gesyciouno, ove yAoGHa JUIN MpoCMoTpa COCToRHMA KORA Tipu ero meinonnenuit, Ho HOTA TpeByeTeH OCTAMOBITE AeliCTANE H NpoaataNponaTh ero. Himensio 170 370i HeAn M CAyKaT TONKH NpepeIBaHts. Touku npepbigaHun Toukn npepmipaia He Tax MpOCTs, KaK OMeparopht PerHcTpanti, HO OHH MaloT saMeT- HOe MpeHMyMmecTBO — OCTAHADABATh BLINOAHEHHE NporpaMMl HAN CueHapHs, a 3aonHO H paGory 6paysepa, Ha KoHKpeTHoil CTpoKe Koga. Ir NosnoasteT THLATERbHO NPOAHAAMSHPO- naTb BCe OGBMHO HEQOCTYMHBIE COCTORHHA, NEPeMCHHLe, KOKTEKCT M HerouKy OGsacTet neticrous, Jlonycrm, HMeeTCa eTpanuna, Ha KOTOpOH NpHMerteTCA HOBLI MeTOA Log () , kak nokasano BUHCTHHFe 2.2. Siwctmur 2.2, Npocras crpanmua, Ha KOTOpo NPHMeHRETCR CneyManbHBI MeTOR, Log () Listing 2.2 ls ‘ge npowcnngum mpeprosnt Econ ycranosus roury npepsraittia cpeacrsawn Firebug n cTpoKe Kona, oGoaHaveHHott MeTKOit @ p acTiMre 2.2 (Jin BTOFO OCTATOUHO UEAKHYT Ha HOMEPe CrPOKH Ha TOIIKX akpana cyerapna— Script), a sarem o6HonitT» CTPanHUy UA BHINOAHEHTM KOMIa, TO OTIANINK OCTANOBHT ero BLITOAHEHHE Ha AaHHOH CTPOKE H BBIBEAET Ha BKpaH pesyxBTaT, NPHBCACH- Hiptit Ha pute, 2.2. irate ripe taver"acejrnterig®” eroiog.p2> te Spt heecige Puc. 2.2. Towxu npepweareun nasearsrom ocmanorums exnosnexue Koda na xowacpemnoi: cmpore, xmobe npoana- “Ausuponams ee0 cocmoanaie OGparwre suunanne Ha To, tro Ha mpanoli nanens oToGpaxaeTcs Cocrosuste, B KOTOpoM HAXOUHTCH HCTONESIEMBI KOZ, BUOTAA H SHATCHHTC MepeMennoft x, OT1axuK Bpepsrwacr BBILOHEHHE KOJIA Ha CYPOKE néped HENOCPEACTHEHHDIM BBINLOAMEHAEM TpePEIBSIEMOM CTpo- Diasa 2. Boopy menue chedemeanu mecmuposanun uomaadxu 39 ut Koga. B paccMarpupacMom 3qecb MpuMepe 3TO CTPOKA, B KOTOPOM MOMKEH GuITh BION eH Bbi30B MeToga log (). Ect 1onsrrateca OT1a,NITb MpOrpaMMy HODBIM METOAOM, TO MO2KHO 6LUIO G11 eoizmu B yTOT METOA M TlOCMOTpeT®, “ro %Ke B HEM TIPOHCKOAHT, TAK, ECnM WeKHYTD Ha KHONKe Step Into (ILlar suyrps): Kpaiinas ctena KHONKa € SONOTHCTON CrpeAKOHt), OTAAMINK BhINOMT Kom AO Nepaoii CTPOKH KOAa aHHOTO MeTOMA, M Ha KPAHe MORBITCA PeayzuTaT, npHBegeH- anit Ha pic. 2.3. OGparutre uiuimanste, HACKOABKO HMEHILIOC OTOGpaxkaeMoe COCTOAHHE, 170 FACT BOSMORHOCTE NPOaHAMIGHPORATS KOROE COCTOAHIHe, BKOTOPOM OKAIAICA MIBOM nutemntit MeToa Log (). funny aed ; SS rae : [So sos by ee Beceem ac | wo STE atear motetme tsa ut ierpmaae | . { Puc. 2.3. Bodh @ omraxcusaenriil memod, moscno yeuien Noeoe cocmanntie, €XOMOPAX On erNAANAEMCR OyxKkyHoRMpowarHe 1060r0 NOAHONEHHOTO OTMATYHKA CO CPERCTRAMH YCTAHOBKH TOuEK, Npepblealitis! CHLIBTO SaBHICHT OT Cpeb! Spaysepa, B KOTOPO! On BEINONHAETCH. HMeHTO MO 2Toi mprssite 1 GbLIM cognalibl YROMELHABLINECA BbIllIe MICTpyMeHraTbtibie epemcrea paspa- Gorkit, by HKIMOHATLHTI€ BOSMOXKHOCTH KOTOPHIX HHta4e GLI Ges pocro HeZOCTyIHBL Lik coo6mtectea paspaboranKes craio Gombumam Guiarom 1 OGuleruenHEM TO OGCTORTETDCTRO, "TO CoagaTenut OCHOBHBIX 6paysepon NPHCORAHHILINCE HaKOHeY K CosfaHto apepeKTHBHEX CepBHCHIx TpOrpaMM CHETHAMHO Lt OTTAIKI. Tlomumo snoane ovesnazHoi nen OGHapyxsmaTs 1 yeTpaHATs MporpaMnabie oMttGKH, OTIAAKA KOAA CAPKHT elle OAHOY BechMa NOWeSHOH YEAH. Ona cnoco6crayer BEIpAGOTKE RepexonErx MeToaMK ¢bopMupowaHHs a¢peKTHBHEIX KOHTPOAGHEIX NPHMEPoB AIR TECTH Ponarmia Koma. opmupoganne tectos a os amepuxaucknii nost PoGept Ppocr nitcax, 470 ecru usropo;s Xoporia, TO a = OK@KYTCA XOPOTIMMH, HO HB paspaGorke weG-uprioxeHuii B yacrHocrH 1 060! ro naan APOrPaven:posanis noobie xopouuite TECTEx criocobcrayIOT Ham:cawBt¥o XOpOUe ca Plomepeest ocoG0e snaieHHc cnona xopouue. Bee Brose BOSMOXKHO COATS OF Tectonbiii HaGop, KoTOpEtit Ha CaMOM JEN HISIEM HE MOMOTA€T HarlHCaHHi0 Kaye TREHHOTO Koa, CCAM TECTHI NOCTPOeHEI HeynasHO. Xopoume recrst o6aiai0T Tpems BAKHAIME CBOICTBAMIL, ™ Tlosropsemocts — pesymurarm Tecrupouantist 2O0%KHb1 JleTKO BOCHPOH3BOTHCA. Hopropuo mnomisempie Tecrst JOUDKHB! BCeNA ABATE OHH M Te 2ke PesynLTaTbl. Ecan pesynsratei Tecrpopasitist He NORAAIOTCA OMpeAeTeHHtO, TO Kak OTINUNT AOCTO“EPHBIE PesyABTATHI OT HeAOCTORepHEDX? KPOMe Toro, MOBTOPHEMOCTS TECTOB 40 Yacme I, Hawaso nymu rapasrrupyer, 470 OHM He SABHCAT OT TAKHX BHELIHISK (PAkTOPOR, Kak HArpysKa Ha CeTS worm Lf. © [Ipocrora — rect zomkHBt OnrTs HarteneHE! Ha wTO-MMGymE OHO. Ha Tecra cnenyeT HcKMOUMTS Kak MoxHO Gombule pasMeTKH B KONE HTML, crateBoro ocpopwieHMs 10 -raGamngam CSS sum exetapites JavaScript, Ho He Hapyuias HcxomHEt KOHTpONbHBItt rpumep. Jem Gonbuie stemeHTon HcKMONAeTCH M3 Tecra, Tem Gombe BEPOATHOCTE ‘Toro, TO Ha KONTPOBAEI NPHMED GyLET OKAIBIEATE BMSEIHE TOAKO KOHKPETHBAt ‘TecTHpyeMEtit KON, & Hesanncumocrs — recta 2omkunt shmomaTECA OGocobneHHO. Pesyabrarel BitiOs HHH ORMOFO TECTa He JO/DKHBI 3ABHCETS OT Npyroro Tecra. TectHi CreAYeT Paslenath Ha Kax MOxkHO Gone MenKHe G1OKH, TO HOMOFaeT TOUHEE ONpENeAUTS MCTONHMK nporpammHot omm6Ks, Korya Oa BOSHIKAeT. Tecra Moxio HocTpourns caMbIMM pasHbm croco6amn. B e10M HX MOXxKHO pa3emTh Ma JIB OCHOBHLIC pasHOBHAHOCTH: dexonompyKmuenvie xouMponaeie Npumeper 1 KoKCMpyKMUE- deve xonmpanerove npUmeprr. @ Jlexoncrpykrummsre KoHTpomHHELe Mpumepst. Cosaiorca 1A Toro, wrOGM CBCCTHE KON (NYTEM REKOHCTPYHPoBaHHA) K OTHENHOT MpOCIEME, HCKONAR BCE, TO K Hei He orHocHTcs. Brarofaps STOMY YRAeTCA ROCTHYE NepeSHCTEHHBIX BbIILIe CROLCT Te- crog, Havunas c Hem0ro Calira M MOCACROBATEMHO MCKIOYAK JVIEIOKO PasMeTKY, crunenoe orpopmrerie no Ta6mmiam CSS v cnesapni JavaScript, MOAHO B KOHESHOM HTOore fipuitTH K yMerBUICHHOMY BapualTy KOHTporbHOTO NpMcpa, BocnpOHsRONS memy HcKoMy10 npo6s1eMy. © Koncrpyxrmansie konTposrmunre mpunepsi. Haumaiores ¢ sranectHoro, yupouler- Horo npuiMepa, CnOxK:HOCTE KOTOPOrO HapauutBaeTcA (MYTEM KOHCTPyMpoBaHtA) 10 Tex nop, TOKa He GyjleT BOCHPOHsBEseHa HCKOMAR tiporpammrtas oumOKa. Lia TaKOrO: ‘recrmponanns tpe6yerca napa npocreix TecTOBbIX cpaiiioB, sa OCHORAHIN KOTOpEI CTponrca nonnle TECTHI, a TaK:KE COCO CPopMHPOBAKHA ITH TECTOB M3 YHCTOBOTO BapHianira llpoBepseMoro Koa. PaccmorpHM mpHMep KOHCTpyKTHBHOTO TecrMpoBaHHs. Coaqanve ynpouleHHEX KOH ‘TPoABHER MpHMepon B KOHeUHOM HTOre FPpHtBoAHT K NOABAEHINO NeckomKUX HTML- aition, 8 KoTOpsie yxe BKMOYEHD MHAUMAIBHBIE (PYHKUUORAABHBIE BOIMOxHOCTH. Jn8 PASINHOTO byHKUAOHATHOFO HasHayenvA MOFYT Nake HMETECH PasHble HAayaTbHBIE Jbl: OMMH — AIK MaHHNyApoBaHHiA MonenbIo DOM, Apyroit — aaa Tecruponanus Ajax, rperinit — 21 ama 4 1.2, Tak, 8 nctHHe 2.3 npupexed npocroii KoNTpOmBHBL Mpumep Mortem DOM, vcnomsyennii wi Tecrrponanita GrGmoTeKH jQuery. Jiuctuur 2.3. Ynpowenuei KOXTponbHEsli NpuMep Mopenn DOM Ans TecruposaHun 6u6nuoreKn jQuery
218 cbopnsposartia Tecra 43 UNCTOBOrO BapHaltTa npoRepReMOit KOAOROT GasHI Mh MO- xXeM BOCNOALIOBATECH HEGOMBLITM ClleHapHem KOMAHAHOTO MPOKeccopa, ¥TOGEI NPoBepHTD GuGAMOTeKY, NOYUTH KOMHIO KOHTpONDHOrO MpMepa H NOCTPOUTS TecTODEIit HA6OP, KaK MOKAvaHO HIKE, #!/bin/sh # MposepuTs cBexyn KonMN OuOnMoTeKH jQuery git clone git://github.com/jquery/jquery.git §1 # CKOMMpoBaTL QUKTHBINI KOHTpONBHE mpHwep 8 palin cp $2.html $1/index.html # Cosnats Konmn TecTosoro HaSopa nia 6uOnvoTexH jQuery cd $1 6& make Tlocae coxpanenus » dpaitie gen . sh npusenernbifi Bume cileriapuit moxHo peinomITS Ha KOMARAHOM CrPOKEE CneayIouWM o8pasom: ./gen.sh mytest dom B wrore Korrpomsiteiii npumep Monen DOM 6yner uapnevent m3 ¢paixa dom.html » xparnuinue Tita Git. C apyroit cropori, MoxHo socnomsopareca roToROit cnyxG6oll, npentasHatennott Aa CosmaHIIA MpOCTHIX KOITPOMBHLIX NPUMepon. Og¥a Ma TaKuX cxy2x6, JSBin (http: // jsbin.com), npencranaset coGott mpocroe HHCTpyMeHTAMLHOE CpencTBO 18 NocTpoe- His KOHTPOMBHBIX NpHMepOB, KOTOpbIe 3aTeM CTAHOBATCA ROCTYTHBINAI TIO OcOGOMY URL. imeeten 2axke BOoMO>kHOCTH BILIOWATS B TAKE NIPUMEpbI KON HeKOTOPLIX HarGolIee pac npocrpartermnrx GuGrnorex JavaScript. [Ipumep ceatica paGoret co cnyx6o%i JSBin mpune- nen Ha pc. 2.4. get oft ameecgeiemety fete Amer «ett ri8 = ate Bice, wie, Hawes toner, tee, bre, hag sent that. aS Goo SB hee venterwtte verte? gue Geb Puc. 2.4. Mamenasescecis cnumox oxpana deiicmeyrowels seb-cxyac6 JSBin coe NEB CROEM pachopmxennH noxxonMME sMHeTpyMeHramte CpeACTBA H IHAK, KAK = ‘ Sheaa> 46 Yacms i. Havaso nymu Test Suite / li _ Congas pesypsnsne
    ‘Tecropniit raGop cocrourr 13 ABYX MPOCTHNX TECTOR: OME H3 HHX BETA NPOXOMUT, a APY Toii— He mpoxoamr @. Tipasywia crwieporo obopmlenmsl Ais wiaccos pass 1t fail wars: HO HOKaaLIBAioT B UBeTe (pakT MpOXOAUIeHHs HII Hertpoxorensts TecTOR ©. yuxuns assert () ROBONGHO NPOCTA, HO OHA MOKET NOCIPKHTE HEILIOXHM CraHyapT HIM G10KOM JpUL NOCHE yIONIeH paspaGorKH. A Mbt GyAEM NOTIORATECH C10 KAK METOMOM Ha TPOTMKEHHM BCeH KHMITH JUIN TeCTHPOBAKHs paLINuHEEX (Pparmenros Kona, MpoRepsst Hx wenoctHocts. [pynnbi tectos Ilpoctnie yrsepxyeHus, GesyciOBHO, NOESHBI, HO UX MCTHHHET noTentMal packpbIBa- eT ca, Kora OHH OGLEAMHAOTCH BMECTe B KOHTEKCTe TeCTHPOBAHLA, OGpasys epynm mecmoe. Tipu exinomenuts GtouHoro Tecruposais rpynma TecTon, ckopee Bcero, 6yneT NEN AAT COBOKYTHOCTS YTBEPAUICHHH, CBAIAHHBIX C OTIEALHBIM METOZOM 13 NpIIWIAAHOrO HEF Tepepeiica APL wm npwioxerms, Eom 661 psiromHsurach paspa6orka Ha ocHone nopexeni TO B rpynne TecTos Gui Osi cobpaHel yraepAIEHHA 110 OTHENBHBIM saqa4an. Ho B 110601 coyyae peanusanus, no cymecrBy, ocraeTcs onsnaKonolt. B paccmarprinaemom 3u€ck Mpocrom mpymepe TecTonoro Ha6opa copMupyeTcs PyT- Na TecToR, B KOTOpOH OTMEIBHLIe yTREpALNEHIA BBOAKTCA B pesyaBrarst, Hi ecau m YTHEPAKeHHe OKASKIBAETCA NODKHDIM, TO H Res Fpyniiia TOMeYAeTCH KaK He MPoxonsmias rat. Pesynerar BIMOAHEHMs TeECTOR U3 INCTHHFA 2.5 OCTAETCA JOBOBHO NPOCTHIM, XOTH TpaxTHKe Guin0 Ger 1Oe3HO OpraHittsOBaTe Ha HEKOTOPOM yPOBHE sutHAMNeCKOC yuIpai lve rpyntmamu TecToR, CoKpamiaa rit pacumipas 1 bUILTpys IX, ETH OHM CONePACAT TECTBI, KoTOprie He MpoxozsT. Fiasa 2. Boopy menue cpedemaasu mecmupooarun uomaadxu 47 Jctur 2.5. Peanuzayna rpynnvposanus Tecros: Test Suite | | |

      You might also like