Avatar ·

متى يجب استخدام escape بدلاً من encodeURI / encodeURIComponent في JavaScript؟

مرحباً! بدأت مؤخراً في تعلم JavaScript وواجهت ارتباكاً عند العمل مع ترميز URL. في أمثلة مختلفة من الكود أرى ثلاث دوال: `escape()` و `encodeURI()` و `encodeURIComponent()`. جميعها تبدو وكأنها تفعل الشيء نفسه - تستبدل الرموز الخاصة بتمثيلها المئوي، لكنني لا أفهم متى أستخدم أي منها.\n\nعلى سبيل المثال، أكتب سكريبتاً صغيراً لإرسال بيانات إلى الخادم عبر طلب GET. أحتاج إلى تمرير معاملات في URL، تتضمن أحرفاً سيريلية ومسافات وعلامات ترقيم. إذا استخدمت `escape()`، أحصل على شيء مثل `%u041F%u0440%u0438%D0%B2%D0%B5%D1%82`، أما إذا استخدمت `encodeURIComponent()` - فأحصل على `%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82`. أي من الخيارين صحيح؟\n\nكما سمعت أن `escape()` قديم، لكنه لا يزال يُستخدم في المشاريع القديمة. متى يجب استخدامه أصلاً؟