فهم الفرق بين تنبيهات وجافا سكريبت
نشرت: 2021-09-21أحد الأسئلة المتداولة التي أتلقاها هو ، ما الفرق بين JavaScript و Typescript؟
هيا نكتشف…
من الوقت الذي بدأت فيه الترميز ، كان من الممكن أن يكون JavaScript (JS) جزءًا من جميع مشاريع الواجهة الأمامية. إذا كنت معتادًا على استخدام JS ، ففكر في TypeScript مثل JS بالإضافة إلى بعض الميزات الإضافية التي تجعل تطبيقك أكثر إتقانًا وكتابة . تم تطوير typeScript كمشروع مفتوح المصدر بواسطة Microsoft لجعل تطوير JS أكثر كفاءة واكتشاف أخطاء الترجمة في وقت مبكر.
في هذه المقالة ، سنناقش بعض الميزات المهمة في JavaScript و TypeScript والاختلافات بين لغتي البرمجة النصية.
ما هو جافا سكريبت؟
يتم استخدام JavaScript للبرمجة النصية من جانب العميل. يمكنك إنشاء برنامج نصي على صفحة HTML أو إنشاء ملف بامتداد .js وإدراجه في ملف HTML الخاص بك. من الأمثلة الشائعة في العالم الحقيقي حيث يمكنك رؤية JavaScript هو التحقق من صحة صفحة تسجيل الدخول ، حيث يظهر لك خطأ عندما يكون اسم المستخدم / كلمة المرور غير صحيحين.
دعونا نكتب كود JS بسيط ونقوم بتشغيله على المتصفح:
قم بإنشاء ملف example.html وأضف الكود التالي:
<script> feeling = 'happy'; feeling = 23; </script>يعلن هذا الكود البسيط عن متغير ويعين له قيمة (سلسلة) happy. يمكننا إسناد قيمة من نوع مختلف (رقم) إلى نفس المتغير. لن تشكو JavaScript من ذلك ويمكننا تشغيل الكود على أي متصفح دون أي مشاكل. الآن ، دعونا نحصل على قيمة الشعور من المستخدم:
سيبدو HTML الخاص بنا على النحو التالي:
<input type = "textbox" id = "howyoufeel">وسيكون النص:
feeling = document.getElementById("howyoufeel").value;ما لم نضع عمليات تحقق صريحة في البرنامج النصي ، ستقبل JS أي قيمة من المستخدم وتمررها. لذا ، يمكنك وضع أي شيء مثل 234 ، @. # $٪ ، إلخ في متغير الشعور.
ميزات JavaScript
مما سبق يمكننا ملاحظة الميزات التالية لجافا سكريبت:
- لغة البرمجة النصية المكتوبة بشكل ضعيف
- تُستخدم للبرمجة النصية من جانب العميل ومن جانب الخادم (باستخدام node.js)
- مرنة وديناميكية
- مدعوم من قبل جميع المتصفحات الرئيسية
- خفيف الوزن ومفسر
إذا كنت مهتمًا بإتقان JavaScript ، فراجع دورة Udemy هذه.
ما هو TypeScript؟
سيشتمل التطبيق الواقعي على العديد من عمليات التحقق من الصحة والفحوصات الديناميكية. بالنسبة لمثل هذه التطبيقات ، سيصبح من الصعب اختبار كود JavaScript في مرحلة ما ، ويرجع ذلك أساسًا إلى عدم وجود فحص للنوع. أثناء الحصول على القيم من المستخدمين ، من المهم الحصول عليها بشكل صحيح في البداية نفسها. هذا هو المكان الذي يلعب فيه TypeScript.
TypeScript مكتوب بشدة ولديه مترجم يشكو إذا لم تحدد نوع المتغير.
يتوافق كل من JavaScript و TypeScript مع مواصفات ECMAScript للغة البرمجة النصية. يمكن للطباعة أن تقوم بتشغيل جميع تعليمات JavaScript البرمجية وتدعم جميع مكتباتها - وهذا هو السبب في أنها تسمى مجموعة شاملة من JavaScript.
تثبيت TypeScript
لتنفيذ التعليمات البرمجية السابقة في TypeScript ، نحتاج إلى تثبيت برنامج التحويل البرمجي TypeScript باستخدام الحزمة npm (إذا كان لديك node js).
npm install -g typescriptأو قم بتنزيله مباشرة من صفحة تنزيلات Microsoft الرسمية. يمكنك أيضًا استخدام ملعب TS لترى كيف يتم تحويل الشفرة من ts إلى js.
حالما يتم ذلك، يمكنك تكوين إعدادات المشروع في tsconfig.json واستخدام أي IDE أو نص محرر لكتابة رمز نسخة مطبوعة على الآلة الكاتبة ثم احفظ .ts .
لا يزال بإمكانك الابتعاد عن طريق عدم تحديد نوع المتغير ويمكن لـ TypeScript استنتاج نوع البيانات. ومع ذلك ، ستحصل على خطأ "شعور" إذا قدمت أي شيء بخلاف النوع المستخدم الأول (في حالتنا ، سلسلة) - أثناء التجميع نفسه.
من الجيد دائمًا أن تحتوي الشفرة على نوع تعليق توضيحي لقابلية الصيانة وسهولة الاستخدام:
var feeling: string = “happy”;هذا ليس هو!
يوفر TypeScript العديد من الميزات الأخرى لتسهيل حياة المطور.
ميزات TypeScript
يحتوي كتاب الطباعة على مجموعة ميزات غنية ويأتي كل إصدار مع ميزات جديدة لتسهيل التطوير أكثر من ذي قبل. على سبيل المثال ، مع الإصدار الجديد (4.0) ، بعض الميزات الإضافية هي أنواع المجموعات المتنوعة ، ومصانع JSX المخصصة ، واستدلال خاصية الفئة من المنشئات ، وما إلى ذلك. بعض الميزات النموذجية لـ TypeScript هي:

- يدعم مفاهيم البرمجة الشيئية مثل الواجهة ، والميراث ، والفئة. الأدوية
- الكشف المبكر عن الأخطاء
- دعم IDE مع التحقق من بناء الجملة والاقتراحات
- أسهل في التصحيح كما هو مكتوب
- التحويل البرمجي إلى JavaScript
- تستخدم للتطبيقات من جانب الخادم والعميل
- دعم عبر الأنظمة الأساسية وعبر المستعرضات
- يدعم جميع مكتبات وملحقات JS
لماذا نحتاج TypeScript؟ (مزايا TypeScript على JavaScript)
طورت Microsoft واستخدمت TypeScript لمدة عامين لمشاريعها الداخلية قبل طرحها للجمهور في عام 2012. وأنشأت Microsoft JavaScript مكتوبًا لأنه كان من الأسهل اختبار الكود لتطبيقات المؤسسات على مستوى الإنتاج. لا يزال بإمكانك استخدام ميزات الكتابة الديناميكية ولكن أيضًا كتابة المتغيرات عندما تكون مطلوبة حقًا.
ضع في اعتبارك الكود أدناه:
var mynum = //get from user; addten(number){ return number + 10; }نتوقع أن تكون النتيجة رقمًا دائمًا. ولكن ماذا لو أعطى المستخدم كلمة "خروف"؟ سيكون الناتج sheep10 - من الناحية المثالية ، نحتاج إلى إخبار المستخدم أن هذه العملية غير ممكنة!
أيضًا ، عندما تتوفر لديك معلومات الكتابة ، تصبح برامج تحرير النصوص و IDE أكثر سهولة في استخدام أخطاء وقت التشغيل وحفظها. من الأسهل أيضًا إعادة بناء الكود في وقت لاحق.
هل هذا يعني أننا لسنا بحاجة إلى JavaScript؟ (عيوب TypeScript على JavaScript)
يمكنك التفكير في TypeScript على أنه امتداد لـ JavaScript ، ولكن بالتأكيد ليس بديلاً.
بالنسبة للكتل الصغيرة من التعليمات البرمجية ، يمكن أن يصبح TypeScript عبئًا - سيكون التثبيت والترجمة والترجمة التحويلية زائدة عن الحاجة. باستخدام JavaScript ، يمكنك ببساطة كتابة البرنامج النصي بتنسيق HTML وسيعمل. من الأسهل أيضًا تصحيح أخطاء الكود عندما يمكنك ببساطة تحديث المتصفح في كل مرة تقوم فيها بتغيير شيء ما.
مقارنة وجها لوجه
الآن بعد أن فهمنا ميزات ومزايا كل من TypeScript و JavaScript ، دعنا نراجع المزيد من المقارنات:
| تيبسكريبت | جافا سكريبت |
| لغة مكتوبة تكتشف أخطاء الترجمة في وقت مبكر | يمكنك معرفة الأخطاء أثناء وقت التشغيل |
| مناسب للمشاريع الكبيرة لأنه يحسن إمكانية صيانة الكود وقابليته للقراءة | مع إضافة المزيد من التعليمات البرمجية ، يصبح من الصعب اختبارها وتصحيحها ، وبالتالي فإن JS مناسبة للمشاريع الصغيرة |
| مجموعة كبيرة من JS ، أي ميزات مثل اتجاه الكائن وفحص النوع والمزيد | لغة برمجة نصية تدعم إنشاء محتوى الويب الديناميكي |
| يتطلب تثبيت مترجم وإعداد التكوين | لا حاجة لأي تثبيت ؛ يمكن كتابة كود JS مباشرة في متصفح باستخدام علامة <script> |
| يتم تحويل جميع ملفات .ts إلى ملفات .js قبل التنفيذ ؛ المعروف باسم التحويل البرمجي | يمكن للمطورين تضمين ملفات .js مباشرة في ملفات HTML للتنفيذ باستخدام علامة <src>. |
| قوية وبديهية مع ميزات غنية مثل الوحدات النمطية والأدوية والواجهات | مناسب لتطبيقات الويب البسيطة التي لا تتطلب ميزات متقدمة |
| تستخدم في البرمجة النصية من جانب الخادم والعميل | سهل الاستخدام للبرمجة النصية من جانب العميل ، ولكنه يصبح ثقيلًا ومعقدًا للبرمجة النصية من جانب الخادم |
| يستغرق وقتًا للتنفيذ بسبب خطوة التجميع | لا يلزم تجميع وبالتالي تنفيذ أسرع |
| يدعم كلاً من الكتابة الثابتة والديناميكية | يدعم الكتابة الديناميكية فقط |
| يمكننا تحديد نوع التعليق التوضيحي على النحو التالي: | لا يمكن تحديد نوع التعليقات التوضيحية حيث لا يمكننا تحديد الأنواع. |
استنتاج
من منظور التعلم ، يمكن أن يكون JavaScript هو خيارك الطبيعي. تفتح ملفًا ، وتكتب شيئًا داخل علامات <script></script> ، ثم احفظه بتنسيق HTML - سترى النتائج! يمكنك بعد ذلك البناء عليها لإنشاء محتوى أكثر ديناميكية.
علاوة على ذلك ، عندما تعمل على تطبيق واسع النطاق ، فإن امتلاك معرفة بـ JavaScript سيساعدك على التحول إلى TypeScript بسهولة.
ومع ذلك ، من منظور الوظيفة والأجر ، بصفتك مطور TypeScript ، ستكون أكثر مرونة وراحة مع كل من مشاريع JS و TS - لذلك بالتأكيد أصل أفضل في السوق. عادةً ما يتقاضى مطورو TypeScript أي مبلغ يتراوح بين 110 ألف دولار و 147 ألف دولار ، في حين يتقاضى مطورو جافا سكريبت حوالي 63 ألف دولار - 118 ألف دولار سنويًا.
