فهم جافا سكريبت وأنواع

فهم جافا سكريبت وأنواع

  

المشكلة تحتاج إلى عمل حول حقيقة أن جافا سكريبت ليس لديها أنواع أعلن لمتغيرات. نظرية شفرة جافا سكريبت ليس لديها أي نوع مع المتغيرات المعلنة. عدم وجود متغيرات كتبته هو ظاهر عند اعلان وظائف. وقال ان ليست لديه كتابة الإعلانات متغير لا يعني جافا سكريبت لا يوجد لديه أنواع أو سلامة أي نوع. دعنا نبدأ بها مع اعلان بسيط من وظيفة ، كما يتضح من المثال التالي.

 المصدر : / الانترنت / الجذر / ajaxrecipes / جافا سكريبت / AddTwoNumbers الدالة expectations.html (num1 ، num2) (عودة num1 + num2 ؛)

وAddTwoNumbers الدالة معلمتين ، num1 و num2 ، وتمثل اثنين من الأرقام الفردية. في تنفيذ AddTwoNumbers ، رقمين تضاف معا ويتم إرجاع القيمة. بهذه الطريقة من اعلان وباستخدام وظيفة هو مشترك في لغات البرمجة الأخرى ، ونتيجة لمضيفا ان هذه الارقام num1 و num2 يتم إرجاعها إلى الطالب على النحو التالي : assertEquals (4 ، AddTwoNumbers (2 ، 2)) ؛ وظيفة assertEquals يستخدم ل التحقق من أنه عندما يتم استدعاء الدالة AddTwoNumbers مع 2 و 2 و 4 تتولد نتيجة لذلك. عند تشغيل شفرة ، كل شيء يعمل كما هو متوقع ، ولكن يمكنك أن تشعر وأكد أن كل شيء هو الصحيح؟

الجواب هو لا ، لا يمكنك يشعرون بالاطمئنان ، وذلك لأن بعض الافتراضات المضللة التي تبذل. الدالة AddTwoNumbers تعلن رقمين ، ولكن على افتراض أن num1 و num2 هي أرقام غير معقولة. في جافا سكريبت ، والمتغيرات لا اكتب المعلنة. بمجرد تعيينه لنوع ، والمتغير هو نوع آمنة ، ولكن كنت لا تعرف ما هو نوع المتغير حتى يتم تعيينه ، وبالتالي ، وفيما يتعلق الدالة ، وأنواع num1 و num2 ليست معروفة. الحل وهناك طريقة أكثر أمنا لتنفيذ AddTwoNumbers هي على النحو التالي.

 المصدر : / الانترنت / الجذر / ajaxrecipes / جافا سكريبت / AddTwoNumbersDisplayTypes الدالة expectations.html (num1 ، num2) (فار val1 = parseInt (num1) ؛ فار val2 = parseInt (num2) ؛ إذا (isNaN (val1) | | isNaN (val2)) ( رمي خطأ جديدا ( "num1 ، (و / أو) num2 ليست رقما أو سلسلة") ؛) معلومات ( "AddTwoNumbersDisplayTypes" ، typeof (num1)) ؛ معلومات ( "AddTwoNumbersDisplayTypes" ، typeof (num2)) ؛ عودة val1 + val2 ؛)

في تنفيذ تعديل ، parseInt الأسلوب ، والذي يستخدم لتحويل سلسلة إلى رقم ، يتم تطبيقها على كل من num1 و num2. ونتيجة لparseInt هو قيمة عددية تسمح num1 و num2 التي يمكن ان تضاف معا. وnum1 و num2 المعلمات يتم التحقق من أن تكون الأرقام باستخدام مشغل isNaN. القيمة عودة isNaN هي قيمة حقيقية أم مزيفة. إذا كان أي من بإرجاع قيم زائفة ، ثم num1 أو num2 ليس عددا ويتم طرح استثناء. في تعديل لهذا التنفيذ ، يبدو أن القليل جدا يمكن ان تذهب الخطأ. وعند النظر إلى تنفيذ مشروع لإضافة رقمين ، قد تتساءلون عن كيفية استخدام لغة ديناميكية مثل جافا سكريبت هو ميزة على استخدام لغة برمجة أخرى.

رمز إضافي استخدامها للتحقق من وجود أو عدم وتستخدم أنواع الصحيح ستكون مملة إذا كان هذا النوع من المنطق تم تنفيذه بالنسبة لجميع المهام. في لغات البرمجة الأخرى مثل جافا وجيم # ، مضيفا رقمين معا بسلام أمر سخيف تماما. منحت ، واذا حكمتم لأداء عدد كبير من العمليات الحسابية العددية ، ثم جافا سكريبت ربما لا يكون أنسب لغات البرمجة. ولكن عندما كنت في حاجة لكتابة طلب للحصول على القيام بشيء ما ، وكنت لا تريد للتسكع مع انخفاض مستوى التفاصيل التي لا نوع ما ، وجافا سكريبت هي الخيار الأفضل ، وتعديل شفرة المصدر هو مثال على كتابة دفاعية رمز ، وهي ممارسة جيدة ، ولكن لا أعتبر بعيدة جدا والسماح لها تجعلك بجنون العظمة. رمز تريد أن تفعل ما يفترض القيام به ، وعندما لم يحدث ذلك ، فإنه ينبغي إنشاء أخطاء واضحة وبعبارة أخرى ، تريد أن تصرخ رمز عند حدوث خطأ. الرمز الذي يجسد تصرخ ثم ينبغي القيام بشيء ما معها. عند كتابة الوظائف ، والهدف من ذلك هو كتابة التنفيذ الذي رمز دفاعية ملائمة لتطلعات وظيفة. عند كتابة التعليمات البرمجية في لغة حيوية مثل جافا سكريبت والتوقعات والاتفاقيات تلعب أدوارا في غاية الأهمية. عند كتابة التعليمات البرمجية باستخدام لغة برمجة مثل جيم # أو جافا ، والمبرمجين ويتوقع أن تمثل كل حالة من الحالات التي لا تعمل والعمل. دعونا بالتالي إعادة كتابة لدينا وظيفة بالإضافة إلى تنفيذ توقعاتنا ، واستخدام هذه الاتفاقية. الخطوة الأولى هي كتابة التجارب والتفكير في ما هو مقبول وما هو غير مناسب. وتنفيذ التالية تعكس توقعاتنا.

 المصدر : / الانترنت / الجذر / ajaxrecipes / جافا سكريبت / classical_add_display_types expectations.html : الدالة () (assertEquals (4 ، AddTwoNumbersDisplayTypes (2 ، 2)) ؛ assertEquals (4 ، AddTwoNumbersDisplayTypes ( "2" ، 2)) ؛ محاولة (AddTwoNumbersDisplayTypes (وجوه جديدة () ، 2) ؛ testManager.failed () ؛ العودة ؛) الصيد (ه) (معلومات ( "classical_add_display_types" ، "خطأ المتوقعة (" + e.toString () + ")")؛) testManager.success () ؛ ) ،

أول اثنين assertEquals استدعاءات الأسلوب يعكس التوقع بأن بوسعنا أن نضيف أن العدد هو إما سلسلة أو قيمة رقمية. توقع اضافة الى اثنين من قيم رقمية واضحة لأن عادة ما قمت بإضافة رقمين معا. على أمل التمكن من التعرف على اثنين من المخازن الأرقام هي المناسبة لأننا نتعامل مع أشكال أتش تي أم أل. أتش تي أم أل عناصر النموذج تخزين قيمها كحواجز. لذلك عند تنفيذ العمليات الحسابية باستخدام بيانات من أتش تي أم أل عناصر النموذج ، ونحن نتوقع من صيغ لمعالجة التحويل من المخازن إلى قيم رقمية. المكالمات الأسلوب بعد أن تنفيذ الاختبارات لتوقعاتنا ، رمز داخل كتلة استثناء ينفذ شيء ونحن نتوقع ألا عمل.

بالإضافة إلى ذلك مع استدعاء كائن ، حيث خاصية الكائن قد مرجعية عددا ، لا شيء ونحن نتوقع من وظيفة إضافة إلى معرفة. هنا نتوقع خطأ يمكن إنشاء. الشفرة التي ليس من المتوقع أن يعمل ، أو على الأقل يمكن أن نتوقع أن تفشل ، وملفوفا في كتلة استثناء. دور التوقع هو مطلوب في كل وظيفة والمستدعي من وظيفة ، كما هو موضح في المثال. وجافا سكريبت ، ويجب أن تلبي التوقعات وظائف معينة ، لذا يجب مراعاة النقاط التالية عند كتابتها :

• متغيرات لا يعلن عنها باستخدام أنواع ، وعندما لم يتم تعيين متغيرات أنها تعتبر typeless.

• وبمجرد تعيينه ، والمتغيرات نظرة ، تشعر وتتصرف مثل أنواع.

• عند تنفيذ المهام ، الذي يتم كتابة كتل من التعليمات البرمجية التي تنفذ التوقعات.

• صحيح لتلبية التوقعات ، تحتاج إلى كتابة الاختبارات.

• عندما لا تلبى التوقعات ، وينبغي أن يكون واضحا للأخطاء ورسائلهم المصاحبة ينبغي تفسيرية.

• إذا كنت تريد التحقق من نوع ما هو متغير ، واستخدام typeof. لا تستخدم كائن بسيطة أو الاختيار.

• عند تنفيذ التوقعات ، لا يكون بجنون العظمة ، ومحاولة لخلق نوع من نظام التحقق من التفاصيل الدقيقة لكل متغير وعلى كل معلمة.

مقال مقدم من سونيا Lande


تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات.
المهم : هذه المادة "فهم جافا سكريبت وأنواع" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.


Online: 369 users browsing the articles directory