Kombiyuutarada, Barnaamijyada
JavaScript: function shaqo. luqadda Barnaamijyada JS
Fikradaha content firfircoon si ay u sameeyaan web-KHAYRAADKA u noqday iska caadi ah. bogagga ma guurto ah iyo design arrimo Web ugu danbeyn ay howlgalka.
Si kastaba ha ahaatee, casriga ah web-khayraadka Khasab ma aha in wakiil ay ka noqoto go'an of pages ee ay server iyo ceshadaan browser ah (JS + Ajax).
bakhaar Web-ku saleysan waqti xaadirkaan ka mid ah ay ka imanayaan booqdaha wuxuu noqon karaa laba horyaal oo lacag rikoor ah, qaar ka mid ah qoraalka ee «madaxa», sadarro dhawr ah code ee «jirka» oo dhan. Inta kale ee "uuraysan" ee geedi socodka of booqdaha - waa goobta ugu fiican, ama ka go'neyd in uu ka mid noqdo.
Saar ah description iyo nooca hawlaha
опыт, наработаный многими десятилетиями. JavaScript - waa labaatan sano khibrad narabotany ah. Waxay leedahay taariikh weyn ee horumarinta, oo casri ah kooxda u qalma abuuray horumarinta. sidoo Language fakaray, lagu kalsoonaan karo, qurux badan oo ku siinayaa fursad dhab ah loogu talagalay horumarinta si ay u qoraan code for a hufan iyo is-hagaajinta.
Fikradda ah isku geynta waa shaqo ah halkan aanu jirin mabda '. Dabcan, sameeysa ee meel kasta oo bogga si gelin kara code script in rido oo waa la dili doonaa. страницы? Laakiin waa maxay dhibcood ee xeerka, kaas oo toogasho hal mar oo kaliya: marka loading (cabbeyso) bogga? Ma suurto gal ah si ay u dejiyaan qiimaha bilowga ah waxa ka mid ah doorsoomayaasha aan qiimo lahayn.
Script - meeshan waa sharaxaad midig ee doorsoomayaasha iyo hawlaha, halkii ay xoogaa yar oo wanaagsan oo code qoraal ay qudheeda. Waa set oo ah hawlaha lagama maarmaan ah oo muhiim ah, laga yaabee - ay xidhiidh toos ah labada dhinac, laakiin marar badan waxa kala duwan. description Place oo ka mid ah shaqada iyo meesha ay codsi ma aha wax la mid ah.
Ma loo baahan yahay in shaqada si toos ah u yeedhi doonaa shaqo kale, laakiin waxaa la samayn karaa si dadban formation of code firfircoon. booqdaha A qaadataa go'aan code gudahood oo ka shaqeeya hawlaha nidaamka kala yara duwan yihiin.
dhaqdhaqaaqa functional
dhaqdhaqaaqa Functional - ma aha oo kaliya oo gacanta ku haya si aad ah loo qoondeeyey page xubno aan waa arimo in ay u sameeyaan waxyaalaha aasaaska ah ee bogga, oo ka mid ah gacanta ku haya deg deg ah, sidoo kale, ka bedeli kartaa.
tallaabada qaadataa meel on bogga, waxayna ku xiran tahay waxyaalaha aasaaska oo dabeecadda martida u ah oo ku saabsan. Movement of the mouse, keyboard, badhamada, qasabno, dhacdooyinka, alaabta iyo xaalado kale oo u wadin inuu soo bandhigista oo ka mid ah hawlaha loo baahan yahay.
Asal ahaan waxa jira joogta ah lahayn oo ay jirto isku midka ah ma. Waxaa jawaab ku filan si ay u dhacdooyinkii web-khayraadka. Sida ugu dhakhsaha badan JavaScript buuxiyo shaqo gaar ah waxay ku xiran tahay badan farsamo (computer, khadadka isgaarsiinta) iyo semantic (geynta macquulka ah, maadada, taasoo la micno ah dhibaato) arrimood.
Dhab ahaantii waxaa lagu murmi karaa in wax ka soo shaqeeyay isku midka ah, laakiin wax ka dib markii uu wax ka jeedin doonaa, laakiin macnaha of this gaar ah ma aha. Waxaa muhiim ah in shaqo JavaScript - waa fursad si ay u abuuraan jawaab ku filan in falalka booqdaha.
fikirka cusub ee design ah: qaybiyey processing ee moolka dheer hal browser a!
Saan ee doorsoomayaasha iyo hawlaha
JavaScript-doorsoomayaasha waxaa la geeyaa ku tag «script», iyo in jirka ah ee shaqada. Hawlaha waxaa lagu qeexaa si la mid ah. micno gaar ah u qoro gudaha function waxaa shaqo kale, laakiin waxaa laga yaabaa in loo baahdo sababo kala duwan, waana arrin macquul ah.
Description of shaqada guud ahaan bilaabantaa keyword «shaqada», raaceen magaceeda by, liiska dood ku parentheses, kala hakadka, iyo jidhka shaqo ee biraha ah.
Tusaalahaan, laba hawlood waxaa lagu qeexay in ay bixiyaan Ajax-dhaafsiga u dhexeeya bogga iyo server ka. Qayb ahaan scXHR kor lagu sharaxay, maxaa yeelay laga heli karaa labada InitXML, iyo gudahood WaitReplySC.
Magaca Shaqada iyo Halbeegga "function"
Waxaa la soo bandhigay version asynchronous markii function JavaScript-function waxaa lagu magacaabaa ka dib jawaab server ka. Sidaas darteed, la helo jawaab ka server ka, WaitReplySC helaa tag bogga, qabanaysa macluumaadka la helay iyo sababa hawlaha kale, oo si fiican u bilaabi karaan codsiga soo socda si server ka.
Halkan waxa kale oo muhiim ah in la ogaado in WaitReplySC - shaqayn ah. scXHR.onreadystatechange = WaitReplySC она передается как параметр. Laakiin in line scXHR.onreadystatechange = WaitReplySC waxaa soo maray sida dhimaya ah. Tani shaqayn guud kala iibsiga sharci in hawlaha kale sida koobin. qaansada ku wadno oo wuxuu siiyey ay u dhimaya (s) - shaqo isla markiiba la dili doonaa. Qisadii by magaca oo keliya, sidoo kale si wixii. function Call mid ka mid ah oo magaceeda helay ka dhigi doonaa.
shaqeynta The fulin via Ajax, kuu ogolaanaya in aad soo wacdo function JavaScript ah iyada oo xogta ka soo server ka helay. Dhab ahaantii, u diraya codsi ah in server ka, mid ka mid ah ama muujinta kale ma laga yaabaa in at dhan "ogaan", taas oo u shaqayn ayay jirsado, iyo wixii macluumaad.
function Out iyo natiijada
jirka ah ee shaqada, waxaad u soo qori kartaa wax kasta oo ka shaqeeya luqadda, kuwaas oo, dhab ahaantii, waayo, waxaa loogu tala galay. Tilmaamo Inside yihiin doorsoomayaasha gudaha iyo dibadda ku dhawaaqay, laakiin ma aha kuwa la tilmaamay in hawlaha kale.
Haddii aad rabto in aad shaqada ku soo laabto darteed, waxaad isticmaali kartaa qoraal ku soo laabtay JavaScript: laabto. jirka ah ee shaqada laga yaabaa in tiro ku filan oo statements soo laabtay. Ma loo baahan yahay in dhan oo iyaga ka soo noqon doonaa natiijada nooca la mid ah.
Sida caadiga ah, horumarinta yihiin qadarin fursaddan oo, ku xiran tahay xaaladda, ay go'aansadaan in ay ka baxaan shaqada sida ugu dhakhsaha badan ee suurtogalka ah.
Ma aha lagama maarmaan in la dhex geynta oo dhan hawlaha, marka aad ka heli kartaa hore.
doodaha shaqo
Dood dhaafay in liiska shaqada, kala hakadka, waxaa ku lifaaqan ee parentheses, oo waa magaceeda oo kaliya ka dib. dood loo isticmaalo magacyada variable, laakiin waxa aad si toos ah u gudbin kartaa qiimaha. Inay ku aflaxaan shaqada JavaScript ah in shaqo ah, aad u baahan tahay in ay magaceeda sheeg aan ku dhxe.
Inside function waa dood variable laga heli karaa, taas oo uu leeyahay hantida dherer ah. Waxaad gudbin karaan in ay shaqo muran kasta oo loo marayo dood [0], dood [1], ... dood la soo dhaafay [arguments.length-1].
Beddelidda shaqo ee Xujada runtii gudaha shaqo, laakiin ma aha waxa ay ka baxsan. Si inaan wax bedelo ka baxsan shaqada, wadaha waa in ay isticmaalaan soo laabtay JavaScript, iyada oo loo marayo taas oo noqotay qiimaha looga baahan yahay in ka baxsan.
Ka dib markii shaqada ka baxayo, oo la xidhiidha hirgelintiisa oo dhan, waa la wada dumin doonaa. Intii lagu guda jiray fulinta shaqada laga yaabaa in la beddelo doorsoomayaasha dibadda, kuwa la tilmaamay in hawlaha kale, oo ay ku jiraan kuwa ku jira gudaha marka laga reebo.
Waxaan leenahay dood hantida callee, oo waxaa loogu tala galay inuu u soo yeedho shaqo ah in la sameeyaa waqti la siiyo. Haddii sababta laftiisa, version JavaScript ee shaqada in shaqada ay dhaqan doonaa recursion.
Isticmaalka hawlaha
Walaaca ugu weyn ee hawlaha ka - si ay ugu adeegaan browser dhacdo. Si taas loo sameeyo this ku dhawaad tag kasta oo uu awood u leeyahay in la qeexo magaca dhacdo iyo shaqada ay wax soo saarka. Waxaad cayimi kartaa dhacdooyin badan, laakiin ay dhacdo kasta waxaa lagu tilmaamay mid ka mid ah shaqada oo keliya.
Mid ka mid ah shaqada xamili karaan xubno page badan iyo dhacdooyin yar. Iyada oo doorasho «this», aad ku wareejin kartaa shaqo macluumaadka halkaas oo la odhan jiray.
Isticmaalka classic of JS-hawlaha - kiii dhacdo on xubno ka ah. Tusaalahaan scfWecomeGo () shaqo ama scfWelcomeCancel () waxaa loo yaqaanaa qaab aqbasho / saarka ee booqde ah, iyo markii doorashada hab qalliinka scfMenuItemClick (this).
Xaalada danbe, dhimaya kala dhex maray oo si «this», taas oo kuu ogolaanaya in aad mucjisooyin waxa diva la odhan jiray bartaan. Dhab ahaantii, JavaScript waxaa si tayo nimo ee Dom ah, oo waxaa la si ku haboon kuu ogolaanaya in aad maraan xubno ay, si ay u ururiyaan macluumaadka loo baahan yahay in dhaqdhaqaaqa pages si fudud u noqon kartaa la saadaalin karin.
function ma laha inuu ku soo laabto ka string, tirada, ama shaqo kale. Waxay ku noqon kartaa a full HTML-element, oo taas oo ah tirada loo baahan yahay xubno, iyadoo gacanta ku haya ay, dhacdooyinka ay.
By u geliya element ah oo ku saabsan bogga, sameeysa ku abuurtaa shaqeynta cusub waa wanaagsan yahay marka la eego xalinta dhibaatada iyo kulmaan danaha kooxda martida ah, laakiin kuwo ku adag marka la eego fulinta.
Tan iyo horumarinta noocan oo kale ah si buuxda u shaqaynaysa, fududahay in la waayay code hooyo, in wicitaanada shaqo, in daqiiqado markii la aasaasay ama in content ka mid ah ama mid kale ee bogga. Ka hor inta qaadashada jihada ka mid ah horumarinta sida, ma joogsan si fiican miisaankiisu yahay wax walba.
On qaybinta fikirka
sameeysa waxay leedahay in aad ka fikirto heerka of dhamaan qaybaha bogga, dhacdooyinka oo dhan, oo ay bandhigga cad oo ku saabsan sida wax kasta oo run ahaantii dhacaya. Way adag tahay, laakiin shaqada waa u qalantaa.
In JavaScript, shaqada loo dhigi karaa ilaa ay dhacdo qaar ka mid ah, iyo qaababka sida laga yaabaa in dad badan, iyo dhacdooyinka u janjeera in ay ku faafi iyo aad u hesho gelin "howgala of aragti" oo ka mid ah Processor kala duwan.
Tusaalahaan, meel ka hor inta shaqada la odhan jiray, oo bilaabey ah item navigation file menu. Waxaa la malaysan qaylo dhaanta, waxa uu furmo suuqa kaliya todoba files, kaas oo laga saari karaa oo la warshadeeyey. la dhaqaajin karin sida file ah adigoo gujinaya safka, iyo furaha arrow iyo blocks toddoba saf.
Xaalad kasta waxay leedahay shaqo gaar ah. In si kale loo dhigo, in tusaale ahaan this fudud, waxaad u baahan tahay si ay u qoraan laba qof oo ah daraasiin muuqaalada in fal dhacdooyinka kala duwan, iyo qaar ka mid ah hawlahaas qaban doonaa noocyo kala duwan oo fursado iyo xaaladaha dhacdooyinka ma iska leh.
Tusaale ahaan, marka ay ka saareen khadka hoose waa in la upwardly barakacay. Tani waxay u baahan doontaa mid ka dhigi xulashada cusub oo caadi ah iyo si cad u khayraad, ama loo tiriyo khadadka, isticmaalaan shaqo javascript on isugu diyaariyeen iyo in la gaaro goolkii ugu qatarsanaa.
The dood iyo natiijooyinka hawlaha
JavaScript kuu ogolaanaya in aad soo dejin code in xaaladda "full-ciyaaray". Sida caadiga ah, marka muran ah ee shaqada waa shaqo. ikhtiyaarka loo ogol yahay, function ka soo laabtay shaqada a. JavaScript waxa ay qaadataa ilaa xad si deggan.
Tani waa hab wanaagsan, laakiin halkii ay u adag marka la eego fulinta. Farsamo ahaan la ogolaan semantically siiyaan "functional" gudbinta macquulka ah oo kaliya by sameeysa aqoon.
Marka shaqo JavaScript in hawl - midig oo dhan, laakiin marka shaqada abuuraa shaqo ah, iyo in kale, macquulka ah waa kuwo ku adag tahay in la raaco. Dhab ahaantii, su'aasha ma aha in si aad u dalbato xirfadaha, su'aashu waxay tahay si aad u hesho natiijo ammaan ah oo sax ah.
daryeelka Developer waa cad yahay oo fudud. Waxaa wax dhibaato ah, waxaad u baahan tahay xal, aan kutaan ah sida «baadi JavaScript hawlgalka waa cabsan» , screen maran, ama ay joojiyaan dhammaan engine browser.
Haddii muran waa shaqo ah, ka dibna sameeysa ku noqotay variable leh guryaha gaarka ah, aan waa tiro ka mid ah, ma xarig ah, oo aan shay. Laakiin isticmaalka sida muran keeni kartaa in xaqiiqda ah in la beddelo doorsoomayaasha dibadda iyo waa natiijada fulinta shaqada. Iyada oo ku xidhan isbedelada in uu noqon doono ku filan wareejiyo.
Fulinta code ahbaa
Dhaqangelinta code dil ahbaa in koorsada shaqada code kale, waxaa suurto gal by yahay ee «eval». Waxaa la ma loo arkaa in ay xal fiican, laakiin inta badan ma adkayn kartaa code ee hawlo aan loo baahnayn, iyo in la xadido formation of line Ciyaalle of code JavaScript iyo si fudud u fuliyaan.
Tusaalahaan, insert waxaa la aasaasay Tolmada galay QAY buuxsan, macluumaadka qaarkood. Diva iyo content macluumaad tiro kala duwan ee jagooyinka kala duwan, sababtoo ah go'aan xaalad tan oo kale ah ma bixiso xaalad damaanad qaaday «javascript baadi hawlgalka waa cabsan» , laakiin si adag u siin saamaynta ay ku doonay.
Midka JavaScript qaabka wareeg "function ee shaqada"
Haddii aad samayn karto oo aan sharraxaad ka, waxaa wanaagsan in la isticmaalo. All of fursadaha kuwan waa wanaagsan yihiin. Dabcan, inta badan, waa xalka keliya.
Tusaale ahaan classic A of recursion: factorial ah. Waa ay adag tahay in ku filan si ay u qoraan geynta in loop doono, laakiin waa mid aad u fudud, aad riixi kartid isla qiimaha baqshadda. Factorial si deg deg ah u korayo.
Si kastaba ha ahaatee, recursion, iyo shaqada oo ku baaqay in shaqo kale, taas oo ka dhigi kartaa callback xog - wax caadi ah.
Tusaale ahaan, miis si joogto ah. Shaxda kale waxaa laga yaabaa in miis. Xilliga kulaylaha ma la yarayn karaa. Qor, waayo, miis kasta xeer gooni ah muuqaalada - raaxo badan.
tusaalayaal noocan oo kale ah way badan yihiin, laakiin waxaas oo dhan u noqon doonaa wax dhibaato ah oo dhab ah oo wayn, aan sababta oo ah barnaamijyada. Taasi waa sababta dhibaatada been in xaqiiqda ah in no-sharraxaad ma qotomiyey nidaam hawlaha, more hufan, oo ay debugging iyo howlgalka lagu kalsoonaan karo xiga noqdo daryeelka JavaScript, iyo Developer.
Similar articles
Trending Now