از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تابع escape() جاوا اسکریپت
سرفصلهای مطلب
تا به حال با جاوا اسکریپت برخورد کرده اید escape()
عملکرد و تعجب می کنم که همه چیز در مورد چیست؟ در این مقاله، ما به این تابع جاوا اسکریپت که کمتر استفاده می شود، اما گاهی اوقات مفید است، می پردازیم. این escape()
وقتی صحبت از توسعه جاوا اسکریپت می شود، تابع معمولا در کانون توجه قرار نمی گیرد، اما زمانی که نیاز به رمزگذاری کاراکترهای خاص در یک رشته دارید، به کارتان می آید.
توجه داشته باشید: این escape()
عملکرد در جاوا اسکریپت منسوخ شده است و برای استفاده در توسعه وب مدرن توصیه نمی شود. با این حال، درک استفاده از آن می تواند به حفظ یا بازسازی پایگاه های کد قدیمی که هنوز از آن استفاده می کنند کمک کند.
همانطور که در ادامه این مقاله خواهید دید، توصیه می کنیم از آن استفاده کنید encodeURIComponent()
بجای.
تابع ()escape چیست؟
این escape()
تابع در جاوا اسکریپت برای رمزگذاری یک رشته استفاده می شود. این تابع یک رشته را قابل حمل می کند به طوری که می تواند از طریق هر شبکه ای به هر رایانه ای که از کاراکترهای ASCII پشتیبانی می کند منتقل شود. هنگام رمزگذاری، یک رشته می گیرد و کاراکترهای خاصی را با دنباله های فرار جایگزین می کند.
let str = "Hello, World!";
let result = escape(str);
console.log(result); // Outputs: Hello%2C%20World%21
در کد بالا، escape()
تابع جایگزین کاما (،) و علامت تعجب (!) می شود %2C
و %20
، به ترتیب.
توجه داشته باشید: دنباله های فرار با علامت ‘%’ آغاز می شوند و به دنبال آن دو رقم هگزا دسیمال نشان دهنده مقدار ASCII کاراکتر است.
زمان استفاده از escape()
با وجود منسوخ شدن آن، ممکن است با آن روبرو شوید escape()
در کدهای جاوا اسکریپت قدیمی تر، به ویژه در هنگام کار با کاراکترهای غیر ASCII، مانند آنهایی که در URL ها یا کوکی ها هستند، کار می کنند. این escape()
این عملکرد زمانی مفید است که باید اطمینان حاصل کنید که این کاراکترها به درستی در سراسر شبکه منتقل می شوند.
let url = "http://example.com/?name=John&age=20";
let result = escape(url);
console.log(result); // Outputs: http%3A//example.com/%3Fname%3DJohn%26age%3D20
در این مثال، escape()
تابع URL را با جایگزین کردن کاراکترهای خاص با دنبالههای فرار مربوطه کدگذاری میکند.
محدودیت ها و جایگزین ها
در حالی که escape()
عملکرد می تواند در برخی شرایط مفید باشد، قطعاً محدودیت هایی دارد. به عنوان مثال، کاراکترهای مشابه را رمزگذاری نمی کند +
، @
، و /
، که می تواند در موارد خاصی مانند هنگام برخورد با نام های دامنه بین المللی، ایمیل ها یا URL ها باعث ایجاد مشکلاتی شود.
جایگزین مناسب تری برای escape()
تابع است encodeURIComponent()
، که کاراکترهای خاص را رمزگذاری می کند، از جمله آنهایی که توسط آن نادیده گرفته می شوند escape()
تابع.
let url = "http://example.com/?name=John&age=20";
let result = encodeURIComponent(url);
console.log(result); // Outputs: http%3A%2F%2Fexample.com%2F%3Fname%3DJohn%26age%3D20
این encodeURIComponent()
تابع اسلش رو به جلو (/) را کد می کند در حالی که escape()
عملکرد ندارد.
نتیجه
حتی اگر جاوا اسکریپت escape()
تابع در حال حاضر منسوخ شده است، در گذشته کاربردهای خود را داشته است، به ویژه در هنگام کار با کاراکترهای خاص در رشته ها. دانستن اینکه چگونه کار می کند می تواند هنگام برخورد با پایگاه های کد قدیمی مفید باشد. با این حال، برای کارهای توسعه معاصر، به ویژه آنهایی که شامل URL یا کاراکترهای یونیکد هستند، جایگزین هایی مانند encodeURIComponent()
راه حل جامع تر و قابل اعتمادتری را ارائه دهید.
منتشر شده در 1403-01-03 22:41:05