Tulkošanas vai apkopošanas JavaScript nozīmē

Datori faktiski nevar palaist kodu, kurā jūs rakstāt JavaScript (vai jebkuru citu valodu šajā jautājumā). Datori var darbināt tikai mašīnas kodu. Mašīnas kods, kuru var darbināt konkrēts dators, ir noteikts procesorā, kurš veiks šīs komandas, un tas dažādiem procesoriem var būt atšķirīgs.

Acīmredzot mašīnraksta kods cilvēkiem bija grūti izdarīt (ir 125 pievienošanas komanda, vai tā ir 126, vai varbūt 27). Lai novērstu šo problēmu, tika izveidotas tā sauktās montāžas valodas. Šīs valodas komandām izmantoja acīmredzamākus nosaukumus (piemēram, pievienošanai pievienot) un tādējādi atcēla vajadzību atcerēties precīzus mašīnas kodus. Montāžas valodām joprojām ir viena pret otru saistība ar konkrēto procesoru un mašīnas kodu, kurā dators pārvērš šīs komandas.

Montāžas valodas ir jāsastāda vai jāinterpretē

Jau ļoti agri tika saprasts, ka rakstīt ir vieglāk valodās bija vajadzīgi, un datoru varēja izmantot, lai tos pārveidotu mašīnkoda instrukcijās, kuras dators faktiski var saprast. Izmantojot šo tulkojumu, varēja izmantot divas pieejas, un tika izvēlētas abas alternatīvas (tiks izmantots vai nu viens, vai otrs, atkarībā no izmantotās valodas un vietas, kur tā tiek darbināta).

instagram viewer

Apkopotā valoda ir tāda, kurā pēc programmas uzrakstīšanas jūs ievadāt kodu caur programmu ar nosaukumu a sastādītājs un kas rada programmas mašīnas koda versiju. Kad vēlaties palaist programmu, jūs vienkārši izsaucat mašīnas koda versiju. Ja veicat izmaiņas programmā, pirms varēsit pārbaudīt mainīto kodu, tā ir jākompilē.

Interpretātā valoda ir tāda, kurā instrukcijas tiek pārveidotas no jūsu rakstītā mašīnkodā programmas izpildes laikā. Interpretātā valoda pamatā saņem norādījumu no programmas avota, pārveido to mašīnā kodu, palaiž šo mašīnas kodu un pēc tam satver nākamo instrukciju no avota, lai atkārtotu process.

Divi varianti tulkošanai un tulkošanai

Vienā variantā tiek izmantots divpakāpju process. Izmantojot šo variantu, jūsu programmas avots tiek apkopots nevis tieši mašīnas kodā, bet tā vietā tiek pārveidots montāžai līdzīgā valodā, kas joprojām ir neatkarīga no konkrētās procesors. Ja vēlaties palaist kodu, tas apstrādā šo apkopoto kodu, izmantojot procesoram raksturīgu tulku, lai iegūtu šim procesoram atbilstošu mašīnas kodu. Šai pieejai ir daudz apkopošanas priekšrocību, saglabājot procesora neatkarību, jo vienu un to pašu apkopoto kodu var interpretēt daudzi dažādi procesori. Java ir viena no valodām, kas bieži izmanto šo variantu.

Otru variantu sauc par Just in Time kompilatoru (vai JIT). Izmantojot šo pieeju, jūs faktiski nedarbiniet kompilatoru pēc koda uzrakstīšanas. Tā vietā tas notiek automātiski, palaižot kodu. Izmantojot kompilatoru Just in Time, kods netiek interpretēts ar paziņojumu, tas tiek apkopots vienā ejiet katru reizi, kad tas tiek uzaicināts palaist, un tad iegūst iegūto apkopoto versiju skriet. Šī pieeja liek izskatīties tā, kā kods tiek interpretēts, izņemot to, ka kļūdu vietā tiek atrastas tikai paziņojumā ar Kļūda ir sasniegta, kompilatora atklāto kļūdu rezultātā neviens kods netiek palaists, tā vietā tiek izmantots viss kods līdz šim brīdim. skriet. PHP ir valodas piemērs, kuru parasti izmanto tieši laika kompilācijā.

Vai JavaScript ir sastādīts vai interpretēts?

Tātad, tagad mēs zinām, ko nozīmē interpretētais kods un apkopotais kods. Jautājums, uz kuru mums nākamie ir jāatbild, ir, kā tam visam sakars ar JavaScript? Atkarībā no tā, kur tieši darbojas jūsu JavaScript, kodu var sastādīt vai interpretēt vai izmantot kādu no abiem pārējiem minētajiem variantiem. Lielāko daļu laika tu esiJavaScript darbināšana tīmekļa pārlūkā un tur parasti tiek interpretēts JavaScript.

Interpretētās valodas parasti ir lēnākas nekā sastādītās valodas. Tam ir divi iemesli. Pirmkārt, interpretējamais kods faktiski ir jāinterpretē, pirms to var palaist, un, otrkārt, tas ir kas notiks katru reizi, kad tiks izpildīts paziņojums (ne tikai katru reizi, palaižot JavaScript, bet arī ja tas ir ieslēgts) a cilpa tad tas jādara katru reizi ap cilpu). Tas nozīmē, ka JavaScript rakstītais kods darbosies lēnāk nekā kods, kas rakstīts daudzās citās valodās.

Kā tas var zināt, ja JavaScript ir vienīgā pieejamā valoda, kas mums ir pieejama visās tīmekļa pārlūkprogrammās? Pats JavaScript tulks, kas ir iebūvēts tīmekļa pārlūkprogrammā, nav rakstīts JavaScript. Tā vietā tas ir rakstīts kādā citā valodā, kas pēc tam tika sastādīta. Tas nozīmē, ka jūs varat padarīt JavaScript aktivizētu ātrāku, ja varat izmantot visas JavaScript piedāvātās komandas, kas ļauj izkraut uzdevumu pašā JavaScript motorā.

Piemēri, kā iegūt JavaScript ātrākai darbībai

Kā piemēru var minēt to, ka daži, bet ne visi pārlūkprogrammas JavaScript motorā ir ieviesuši metodi document.getElementsByClassName (), bet citi to vēl nav izdarījuši. Ja mums nepieciešama šī īpašā funkcionalitāte, mēs varam padarīt kodu darboties ātrāku tajās pārlūkprogrammās, kur JavaScript dzinējs to nodrošina, izmantojot funkciju mēs redzam, vai šī metode jau pastāv, un izveidojam sava koda versiju JavaScript tikai tad, ja JavaScript dzinējs to nenodrošina mums. Ja JavaScript dzinējs nodrošina šo funkcionalitāti, tam vajadzētu darboties ātrāk, ja mēs to izmantojam, nevis palaižam mūsu pašu JavaScript rakstīto versiju. Tas pats attiecas uz jebkuru apstrādi, kuru JavaScript dzinējs ļauj mums tieši piezvanīt.

Būs arī gadījumi, kad JavaScript nodrošina vairākus veidus, kā iesniegt vienu un to pašu pieprasījumu. Šādos gadījumos viens no piekļuves veidiem ir specifiskāks nekā otrs. Piemēram, document.getElementsByTagName ('tabula') [0] .tBodies un document.getElementsByTagName ('table') [0] .getElementsByTagName ('tbody') gan izgūt to pašu no jauna veidotajiem tagu tagiem tīmekļa lapas pirmajā tabulā, tomēr pirmais no tiem ir īpaša komanda izguvei tbody tagus, kur otrais norāda, ka parametrā iegūstam tbody tagus, un citas vērtības var aizstāt, lai iegūtu citas tagi. Lielākajā daļā pārlūkprogrammu īsāks un specifiskāks koda variants darbosies ātrāk (dažos gadījumos daudz ātrāk) nekā otrais variants, un tāpēc ir jēga izmantot īsāku un specifiskāku versija. Tas arī atvieglo koda lasīšanu un uzturēšanu.

Tagad daudzos no šiem gadījumiem faktiskā apstrādes laika atšķirība būs ļoti maza, un tā būs tikai tad jūs kopā pievienojat daudzas šādas koda izvēles, lai radītu ievērojamas atšķirības laika posmā, līdz jūsu kods tiek izmantots skriet. Tas ir diezgan reti, taču, mainot kodu, lai tas darbotos ātrāk, kods būs ievērojami ilgāks vai grūtāk uzturējams, un bieži vien patiesība būs pretēja. Ir arī papildu ieguvums, ka var tikt izveidotas nākamās JavaScript dzinēju versijas, kas pat paātrina specifiskāko variantu turklāt tas, ka konkrētā varianta izmantošana var nozīmēt, ka nākotnē jūsu kods darbosies ātrāk, jums neko nemainot.

instagram story viewer