Išaiškinta ar sudaryta „JavaScript“ reikšmė

Kompiuteriai iš tikrųjų negali paleisti kodo, kurį įrašote „JavaScript“ (ar bet kuria kita kalba šiuo klausimu). Kompiuteriai gali paleisti tik mašinos kodus. Mašinos kodas, kurį gali paleisti konkretus kompiuteris, yra apibrėžtas procesoriuje, kuris vykdys tas komandas, ir gali būti skirtingas skirtingiems procesoriams.

Akivaizdu, rašymo mašinos kodas žmonėms buvo sunku tai padaryti (yra 125 komandos pridėjimas, ar 126, o gal 27). Siekiant išspręsti šią problemą, buvo sukurtos vadinamosios surinkimo kalbos. Šiose kalbose komandoms buvo naudojami akivaizdesni pavadinimai (pvz., PRIDĖTI pridedant) ir todėl nereikėjo atsiminti tikslių mašinų kodų. Asamblėjos kalbos vis dar palaiko ryšį su vienu konkrečiu procesoriumi ir mašinos kodu, į kurį kompiuteris paverčia šias komandas.

Surinkimo kalbos turi būti sudarytos arba aiškinamos

Labai anksti buvo suprantama, kad lengviau rašyti kalbomis buvo reikalingi ir kad pats kompiuteris galėtų būti panaudotas mašininio kodo instrukcijoms, kurias kompiuteris iš tikrųjų gali suprasti, paversti. Buvo du požiūriai, kurių buvo galima naudoti atliekant šį vertimą, ir buvo pasirinktos abi alternatyvos (bus naudojama viena arba kita, atsižvelgiant į vartojamą kalbą ir kur ji naudojama).

instagram viewer

Sudaryta kalba yra ta, kurioje parašius programą jūs įvedate kodą per programą, vadinamą a sudarytojas ir kuri gamina kompiuterio programos versiją. Kai norite paleisti programą, tiesiog paskambinkite mašinos kodo versija. Jei atliksite programos pakeitimus, prieš bandydami pakeistą kodą turite ją iš naujo kompiliuoti.

Išaiškinta kalba yra ta, kai instrukcijos paverčiamos iš to, ką parašėte, į kompiuterio kodą, kai vykdoma programa. Išaiškinta kalba iš esmės gauna nurodymą iš programos šaltinio, paverčia jį mašina kodą, paleidžia tą mašinos kodą ir tada paima kitą nurodymą iš šaltinio pakartoti procesas.

Du variantai kompiliavimo ir aiškinimo srityje

Viename variante naudojamas dviejų etapų procesas. Taikant šį variantą, jūsų programos šaltinis yra sudedamas ne tiesiai į mašinos kodą, bet vietoj to yra paverčiamas į montažinę kalbą, kuri vis dar nepriklauso nuo konkrečios procesorius. Kai norite paleisti kodą, jis apdoroja tą kompiliuotą kodą per specialų procesoriaus vertėją, kad gautų šiam procesoriui tinkamą mašinos kodą. Šis požiūris turi daugybę kompiliavimo pranašumų išlaikant procesoriaus nepriklausomumą, nes tą patį sudarytą kodą gali interpretuoti daugybė skirtingų procesorių. „Java“ yra viena iš kalbų, kuri dažnai naudoja šį variantą.

Kitas variantas vadinamas „Just in Time“ sudarytoju (arba JIT). Taikydami šį metodą, iš tikrųjų nevykdysite kompiliatoriaus, parašę kodą. Vietoj to, tai įvyksta automatiškai, kai paleidžiate kodą. Naudojant „Just in Time“ kompiliatorių, kodas nėra aiškinamas teiginiu, jis sudedamas į vieną eikite kiekvieną kartą, kai jis bus pašauktas paleisti, ir tada gaunama ką tik sukurta kompiliuota versija bėgti. Šis požiūris leidžia atrodyti taip, kaip kodas yra aiškinamas, išskyrus tai, kad klaidos randamos tik tada, kai teiginys su pasiekiama klaida, bet kurios kompiliatoriaus aptiktos klaidos lemia, kad nėra paleidžiamas nė vienas kodas, o ne visas kodas, esantis iki to momento bėgti. PHP yra kalbos, kuri paprastai naudojama tik laiko kompiliacijai, pavyzdys.

Ar „JavaScript“ sudarytas ar aiškinamas?

Taigi dabar mes žinome, ką reiškia interpretuotas kodas ir sudarytas kodas, klausimas, į kurį turime atsakyti, yra tai, ką visa tai turi bendro su „JavaScript“? Priklausomai nuo to, kur tiksliai vykdote „JavaScript“, kodas gali būti sudarytas arba interpretuojamas arba gali būti naudojamas vienas iš kitų dviejų paminėtų variantų. Didžiąją dalį laiko esatepaleisti „JavaScript“ žiniatinklio naršyklėje ten paprastai aiškinamas „JavaScript“.

Išaiškintos kalbos paprastai yra lėtesnės nei sudarytos kalbos. Tam yra dvi priežastys. Pirma, aiškintinas kodas iš tikrųjų turi būti aiškinamas prieš jį paleidžiant, ir, antra, tai turi kas nutiks kiekvieną kartą, kai bus vykdomas teiginys (ne tik kiekvieną kartą paleidus "JavaScript", bet jei jis yra a kilpa tada tai reikia daryti kaskart aplink kilpą). Tai reiškia, kad „JavaScript“ rašomas kodas veiks lėčiau nei kodas, parašytas daugeliu kitų kalbų.

Kaip tai žino mums, kai „JavaScript“ yra vienintelė kalba, kuria galime naudotis visose interneto naršyklėse? Pats „JavaScript“ vertėjas, įmontuotas interneto naršyklėje, nėra parašytas „JavaScript“. Vietoj to, jis parašytas kita kalba, kuri tada buvo sudaryta. Tai reiškia, kad galite paspartinti „JavaScript“ veikimą, jei pasinaudosite bet kuriomis „JavaScript“ pateiktomis komandomis, leidžiančiomis perkelti užduotį į patį „JavaScript“ variklį.

Pavyzdžiai, kaip gauti „JavaScript“ greičiau

To pavyzdys yra tai, kad kai kurios, bet ne visos naršyklės, „JavaScript“ variklyje įdiegė „document.getElementsByClassName ()“ metodą, o kitos to dar nepadarė. Kai mums reikia šios konkrečios funkcijos, mes galime nustatyti, kad kodas būtų paleistas greičiau tose naršyklėse, kuriose „JavaScript“ variklis tai teikia naudodamas funkciją norėdami sužinoti, ar metodas jau egzistuoja, ir sukurkite savo kodo versiją „JavaScript“ tik tada, kai „JavaScript“ variklis to nenumato mus. Jei „JavaScript“ variklis teikia šią funkciją, jis turėtų veikti greičiau, jei mes jį naudosime, o ne paleisime savo versiją, parašytą „JavaScript“. Tas pats pasakytina apie bet kokį apdorojimą, kurį „JavaScript“ variklis leidžia mums tiesiogiai paskambinti.

Taip pat bus atvejų, kai „JavaScript“ siūlo kelis būdus, kaip pateikti tą pačią užklausą. Tokiais atvejais vienas iš prieigos prie informacijos būdų gali būti konkretesnis nei kitas. Pavyzdžiui, document.getElementsByTagName ('lentelė') [0] .tBodies ir document.getElementsByTagName ('table') [0] .getElementsByTagName ('tbody') gan nuskaitykite tą patį „tbody“ žymų naująjį sąrašą pirmoje tinklalapio lentelėje, tačiau pirmoji iš jų yra speciali komanda, skirta nuskaityti „tbody“ žymas ten, kur antroji nustato, kad mes gauname „tbody“ žymas pagal parametrą, o kitas reikšmes galima pakeisti, norint gauti kitas žymės. Daugelyje naršyklių trumpesnis ir konkretesnis kodo variantas veiks greičiau (kai kuriais atvejais daug greičiau) nei antrasis variantas, todėl prasminga naudoti trumpesnį ir konkretesnį versija. Tai taip pat palengvina kodo skaitymą ir priežiūrą.

Dabar daugeliu šių atvejų tikrasis apdorojimo laiko skirtumas bus labai mažas ir tai bus tik tada pridėsite daugybę tokių kodų pasirinkimų, kad pastebėsite bet kokį skirtumą per tą laiką, kurį jūsų kodas naudoja bėgti. Tai gana reta atvejis, kai pakeitus kodą, kad jis veiktų greičiau, kodas bus žymiai ilgesnis arba sunkiau prižiūrimas, o dažnai atvirkščiai. Papildomas pranašumas yra tas, kad gali būti sukurtos būsimos „JavaScript“ variklių versijos, kurios netgi pagreitina konkretesnį variantą Be to, jei naudosite konkretų variantą, tai gali reikšti, kad ateityje jūsų kodas veiks greičiau ir jums nieko nereikės keisti.