JavaScript goʻzallashtirish qanday ishlaydi
Goʻzallashtiruvchi kodingizni belma-bel oʻqiydi, har bir operatorning qanchalik chuqur joylashganini kuzatadi va uni izchil boʻsh joylar bilan qayta chiqaradi. U kodning nima qilishini hech qachon oʻzgartirmaydi — faqat qanday koʻrinishini.
- Tokenlashtirish. Kutubxona kirishingizni tokenlar oqimiga skanerlaydi: kalit soʻzlar, identifikatorlar, satrlar, operatorlar va tinish belgilari. Satrlar, shablon literallari va muntazam ifoda literallari bitta birlik sifatida taniladi, shuning uchun satr ichidagi qavs hech qachon blok chegaralovchi bilan adashmaydi.
- Joylashishni kuzatish. Tokenlar oqimini aylanib oʻtayotganda goʻzallashtiruvchi joriy chegara darajasini saqlaydi. Har bir ochiluvchi jingalak qavs, kvadrat qavs yoki oddiy qavs darajani chuqurlashtiradi; har bir yopiluvchi uni qaytaradi. Bu chuqurlik har bir qaytarilgan qator oldida nechta chegara birligi boʻlishini belgilaydi.
- Parametrlarni qoʻllash. Chegara tanlovi (2 boʻsh joy, 4 boʻsh joy yoki tab) bir darajaning kengligini belgilaydi. Qavs uslubi sozlamasi ochiluvchi jingalak qavsning undan oldingi operatorga yopishib turishini yoki oʻz qatoriga tushishini belgilaydi. Boʻsh qator cheklovi uzun boʻsh qator qatorlarini tanlagan chegarangizga kamaytiradi.
- Qayta chiqarish. Nihoyat formatlash vositasi tokenlarni u hisoblagan chegara va qator uzilishlari bilan qayta chop etadi, ixtiyoriy ravishda avtomatik nuqtali vergul qoʻshish ishlash vaqtida taʼminlagan nuqtali vergullarni qoʻshadi. Natija bir xil dastur boʻlib, inson uni oʻqiy olishi uchun joylashtirilgan.
Nima uchun JavaScript-ni goʻzallashtirish kerak
- Kichraytirilgan kodni oʻqish. Ishlab chiqarish to'plamlari bir harfli oʻzgaruvchi nomlari bilan bitta qatorda keladi. Goʻzallashtirish qator uzilishlari va chegaralashni tiklaydi, shuning uchun manba xaritasisiz ham xatoni uni keltirib chiqargan operatorgacha kuzatishingiz mumkin.
- Izchil boʻlmagan fayllarni tartibga solish. Bir necha kishi teggan kod aralash chegara va qavs uslublariga oʻtib ketadi. Goʻzallashtiruvchi orqali bitta oʻtish butun faylni yagona makonga normallashtiradi, bu keyingi diff boʻsh joy shovqini oʻrniga haqiqiy mantiq oʻzgarishlarini koʻrsatishga imkon beradi.
- Bu vosita sahifangizni sekinlashtirmaydi. Koʻpgina onlayn formatlash vositalari sahifa ochilganida butun kutubxonani yuklaydi. Bu vosita js-beautify-ni faqat Goʻzallashtirish tugmasini bosganda yoki Jonli rejimni yoqqanda lazy-load qiladi, shuning uchun sahifani ochish bir necha yuz oʻrniga bir necha kilobaytga tushadi va dastlabki render tez qoladi.
- Hech narsa brauzeringizni tark etmaydi. Goʻzallashtiruvchi toʻliq qurilmangizda ishlaydi. Kodingiz hech qachon serverga yuklanmaydi, bu tekshirayotgan skript mijozga tegishli boʻlsa, ichki API yoʻllarini oʻz ichiga olsa yoki maxfiylik shartnomasi ostida boʻlsa ahamiyatlidir.
Keng tarqalgan qoʻllanishlar
JavaScript goʻzallashtirish kimdir oʻqish uchun yozilmagan kodni oʻqishi kerak boʻlganda doimo paydo boʻladi.
- Ishlab chiqarishda nosozliklarni topish: aks holda dekodlab boʻlmaydigan xato to'plamining ortidagi funksiyani topish uchun Network yorligʻidan olingan kichraytirilgan toʻplamni joylashtiring.
- Kod ko'rib chiqishga tayyorlash: ko'rib chiquvchilar joylashuv emas mantiqni koʻrishi uchun pull requestni ochishdan oldin kontributorning izchil boʻlmagan chegarali faylini qayta formatlang.
- Xavfsizlik va muvofiqlik auditi: ishga kirishishidan oldin nima qilishini aniq tasdiqlash uchun uchinchi tomon analitika yoki reklama snippetini kengaytiring.
Ishlangan misol
Kichraytirilgan bir qatorni oling: function f(a){if(a){return a*2}else{return 0}}. Chegara 2 boʻsh joy va qavs uslubi Yigʻish qilib oʻrnatilgan holda yuqoriga joylashtiring, soʻng Goʻzallashtirish tugmasini bosing. Oʻqilishi mumkin boʻlgan blokni qaytarib olasiz: function f(a) {, keyin chegaralangan if (a) {, bir daraja chuqurroq joylashgan return a * 2; operatori va ostida hizalangan mos yopiluvchi qavslar. Qavs uslubini Kengaytirish ga almashtiring va har bir ochiluvchi jingalak qavs oʻz qatoriga tushadi. Chegarani Tablarga oʻzgartiring va har bir daraja ikki boʻsh joydan tab belgisiga oʻtadi. Tuzilma bir xil; faqat joylashuv oʻzgaradi.
FAQ
Bu brauzerimda ishlaydimi?
Ha. js-beautify kutubxonasi Goʻzallashtirish tugmasini birinchi marta bosganda yoki Jonli rejimni yoqqanda lazy-load qilinadi, soʻng keshlanadi. Kodingiz sahifadan hech qachon chiqmaydi — server bilan aloqa yoki yuklanish yoʻq.
Goʻzallashtirish va kichraytirishni bekor qilish bir narsamı?
U oʻqilishi mumkin boʻlgan formatlashni — chegaralash, qator uzilishlari va boʻsh joylarni — tiklaydi, lekin kichraytirish olib tashlagan asl oʻzgaruvchi nomlarini yoki izohlarni qaytara olmaydi. Manba xaritasi mavjud boʻlsa, brauzeringizning DevTools-i asl nomlarni tiklashi mumkin; goʻzallashtiruvchi yolg'iz faqat fayldagi narsalar bilan ishlaydi.
Goʻzallashtirish kodimning ishlashini oʻzgartiradimiA?
Yoʻq. Goʻzallashtirish faqat boʻsh joylar va qator uzilishlarini qoʻshadi va olib tashlaydi; dastur bir xil ishlaydi. Tokenlarga teginadigan yagona parametr "Yetishmayotgan nuqtali vergullarni qoʻshish" boʻlib, u ishlash vaqtida avtomatik nuqtali vergul qoʻshish qoʻshgan boʻlar edi degan operator tugatgichlarni kiritadi, bu kodni keyinchalik xavfsiz kichraytirishga imkon beradi.
Qavs uslubi parametrlari nima maʼno anglatadi?
Yigʻish ochiluvchi jingalak qavsni operator bilan bir qatorda saqlaydi (if (x) {), bu odatiy JavaScript konvensiyasidir. Kengaytirish har bir ochiluvchi jingalak qavsni oʻz qatoriga tushiradi (Allman uslubi). Oxirida kengaytirish ochiluvchi qavsni yopishiq saqlaydi, lekin else va catch ni yopiluvchi qavsdan keyin yangi qatorga qoʻyadi.
Brauzer tomonida JavaScript goʻzallashtirish sizga qurilish bosqichi yoki yuklanishsiz oʻqilishi mumkin boʻlgan kodni beradi. Kichraytirilgan yoki tartibsiz skriptni joylashtiring, chegara va qavs uslubingizni tanlang, soʻng natijani nusxalang yoki yuklab oling. Hech narsa qurilmangizni tark etmaydi, hisob yoʻq, kutubxona esa faqat soʻragan paytingizda yuklanadi — shuning uchun bu sahifani ochish bir megabayt emas, bir necha kilobaytga tushadi.