UTILS.
۱۰۰٪ در مرورگر
🎨

زیباساز / قالب‌بند JavaScript

کد JavaScript و JSON فشرده یا نامرتب را با تورفتگی، فاصله‌گذاری و شکست خطوط یکنواخت زیبا کنید — یک قالب‌بند دست‌نوشته که کاملاً در مرورگر اجرا می‌شود.

— خروجی اینجا نمایش داده می‌شود —

درباره این ابزار

زیباساز JavaScript کد JavaScript و JSON فشرده، تک‌خطی یا با تورفتگی ناهماهنگ را به کد منبع تمیز و خوانا با تورفتگی و فاصله‌گذاری یکنواخت بازقالب‌بندی می‌کند. برای خواندن یک کتابخانه بسته‌بندی‌شده، مرتب کردن یک قطعه کپی‌شده، یا بازرسی یک بلوک JSON مفید است. همه‌چیز در مرورگر شما اتفاق می‌افتد — کد فقط به‌عنوان متن بازقالب‌بندی می‌شود، هرگز اجرا نمی‌شود، بنابراین نه eval هست، نه new Function، و هیچ‌چیزی بارگذاری نمی‌شود.

قالب‌بند یک توکن‌ساز دست‌نوشته است، نه یک ترفند regex: کد منبع را به توکن‌ها اسکن می‌کند در حالی که به‌درستی از داخل رشته‌ها، template literalها، عبارات باقاعده و کامنت‌های خطی/بلوکی عبور می‌کند، بنابراین نقل‌قول‌ها و اسلش‌های داخل آن‌ها هرگز با ساختار اشتباه گرفته نمی‌شوند. یک اکتشاف کلاسیک lookbehind یک عملگر تقسیم را از یک regex literal تشخیص می‌دهد. سپس جریان توکن با خطوط جدید بعد از '{'، '[' و ';'، خطوط بدون تورفتگی پیش از '}' و ']'، یک آیتم در هر خط داخل object و array literalها، و یک فاصله واحد اطراف عملگرها و بعد از کلمات کلیدی دوباره تولید می‌شود.

تورفتگی ۲ فاصله، ۴ فاصله یا یک tab را انتخاب کنید، و یک سبک آکولاد: collapse آکولاد باز را در همان خط نگه می‌دارد (K&R / 1TBS)، در حالی که expand آن را به خط خودش منتقل می‌کند (Allman). چون این ابزار محتوای رشته و regex را بایت‌به‌بایت حفظ می‌کند، کد بازقالب‌بندی‌شده از نظر معنایی با ورودی یکسان است. نتیجه را مستقیماً در ویرایشگر خود کپی کنید.

پرسش‌های پرتکرار

آیا کد من را اجرا یا ارزیابی می‌کند؟
خیر. زیباساز فقط کد منبع شما را توکن‌بندی می‌کند و به‌عنوان متن دوباره تولید می‌کند. هرگز eval یا new Function را فراخوانی نمی‌کند و هرگز کد را اجرا نمی‌کند، بنابراین چسباندن JavaScript نامطمئن یا اختصاصی ایمن است. تمام کار در مرورگر شما باقی می‌ماند.
آیا روی JSON هم کار می‌کند؟
بله. JSON یک زیرمجموعه از نحو JavaScript است، بنابراین چسباندن یک object یا array فشرده JSON آن را به شکل با تورفتگی و یک‌کلید‌در‌هر‌خط بازجریان می‌دهد. رشته‌ها، اعداد و ساختارهای تودرتو به همان شیوه JavaScript قالب‌بندی می‌شوند.
تفاوت بین سبک‌های آکولاد چیست؟
Collapse (K&R / 1TBS) آکولاد باز را در همان خط دستور نگه می‌دارد، مثلاً 'if (x) {'. Expand (Allman) آکولاد باز را در خط خودش زیر دستور قرار می‌دهد. هر دو کد یکسان و معتبر تولید می‌کنند — فقط چیدمان متفاوت است.
آیا کاری که کد من انجام می‌دهد را تغییر می‌دهد؟
خیر. فقط فضای خالی، تورفتگی و شکست خطوط تغییر می‌کند. محتوای رشته‌ها، template literalها و عبارات باقاعده دقیقاً حفظ می‌شود، بنابراین خروجی بازقالب‌بندی‌شده از نظر عملکردی با کد منبع اصلی یکسان است.

ابزارهای بیشتر