أنواع البيانات في جافا سكريبت. أنواع بيانات JavaScript

قررت أن أكتب سلسلة من المقالات بعنوان "صعب في البساطة". ستركز هذه السلسلة على لغة JavaScript. لماذا "صعب بخصوص البساطة"؟ لأن كل ما سأخبرك به سأقوله مع الأخذ في الاعتبار خصوصيات عمل المترجم الفوري ، بدءًا من أنواع البيانات. كل هذا سيتم القيام به حتى نتمكن بعد ذلك من التحدث ببساطة عن المعقد ، على سبيل المثال ، حول طرق الوراثة في JavaScript والأنماط الأخرى.

JavaScript هي لغة برمجة موجهة للكائنات مع منظمة نموذجية.
ماذا تعني عبارة "مع منظمة النموذج الأولي" ، سنتحدث في المقالة التالية (ستكون بالتأكيد) ، ولكن لماذا هي "موجهة للكائنات" وما إذا كان كل شيء في JS هو كائن ، سنكتشف اليوم.
JS يحتاج فقط 9 أنواع لتحقيق أهدافه. علاوة على ذلك ، يتوفر 6 منها فقط للبرنامج ، والباقي 3 متاح فقط على مستوى التنفيذ ويتم استخدامه بواسطة المواصفات. للوهلة الأولى (وهذا هو المفهوم الخاطئ الأول) ، كل شيء في JS هو كائنات. لذا فإن خمسة من الأنواع الستة المتاحة للبرنامج تسمى بدائية وليست كائنات (أدناه سأشرح لماذا وكيف يتم الخلط بينها وبين الكائنات). هذه الأوليات الخمسة هي:

- سلسلة (s = 'str')
- العدد (ن = 10)
- منطقي (ب = صحيح)

وكما أسميها "الأنواع الفلسفية":
- خالية (v = خالية)
- غير محدد (u = غير محدد)

فلسفي في هذا العدم يعني أنه لم يتم تخصيص أي شيء للمتغير ، ويعني غير معرف أنه تم تخصيص فارغ للمتغير. ما هو الفرق بين "لا شيء" و "الفراغ" في هذه الحالة - فكر في وقت فراغك. لن نفعل هذا الآن.

النوع السادس (كائن) المتاح للبرنامج هو:
-موضوع(لا ينبغي الخلط بينه وبين مُنشئ الكائن ، فنحن نتحدث فقط عن الأنواع المجردة الآن!) هو النوع الوحيد الذي يمثل الكائنات في JavaScript.
الكائن عبارة عن بنية بيانات (مجموعة كاملة منها) ، يتم تمثيلها كمجموعة من أزواج المفتاح والقيمة. يمكن أن تكون القيمة أيًا من أنواع البيانات - ثم ستكون خاصية للكائن ، أو حتى وظيفة - عندها ستكون طريقة للكائن.

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

وهنا بعض الأمثلة:

فار v1 ؛ // غير محدد (فارغ) متغير محلي var v2 = "2" ؛ // string local literal variable var v3 = new String (2) ؛ تم التصريح عن متغير محلي // سلسلة من خلال المنشئ. سيتم إنشاء كائن جديد من النوع String v4 = String (2) ؛ // سلسلة المتغيرات العامة التي تم استدعاؤها من خلال الباني. سيتم إنشاء متغير window.v4 "2" .length ؛ // لن تصبح السلسلة متغيرًا ، ولكن يمكن استخدامها بالفعل ككائن 34..toString () ؛ // لن يصبح الرقم متغيرًا ، ولكن يمكن استخدامه بالفعل ككائن 12. toString ()؛ // لن يصبح الرقم متغيرًا ولكن يمكن استخدامه بالفعل ككائن (22) .toString () ؛ // لن يصبح الرقم متغيرًا ولكن يمكن استخدامه بالفعل ككائن

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

يتفاقم سوء الفهم عندما نتحقق من نوع المتغير ، على سبيل المثال

Var v = null ؛ typeof الخامس ؛

ونحصل على "كائن" ردًا على ذلك.

وإذا كتبنا:
var v = null ؛ v المثيل من الكائن ؛

ثم ستظهر فوضى في رأسي ، لأن نتيجة السطر الأخير ستكون "خاطئة". أي أن المتغير v من نوع الكائن ، ولكنه غير موروث من النوع Object. ي للرعونة؟!

أولاً ، سأشرح الحيلة باستخدام typeof null. يقوم هذا العامل بإرجاع نوع الكائن. والحقيقة هي أن العامل typeof يُرجع قيمة سلسلة مأخوذة من جدول مشفر ، حيث يتم كتابتها: "for null ، إرجاع" object "". المثيل من عامل التشغيل - يتحقق مما إذا كان شيء ما ينتمي إلى نوع البيانات المحدد. سأخبرك كيف يفعل ذلك في المقالة التالية ، لكنني أؤكد لك ، في هذه الحالة ، أنه يعمل بشكل صحيح ، فإن العدم البدائي لم يتم توريثه بأي حال من الأحوال من نوع الكائن - إنه نفسه ، البدائي ، هو أدنى مرحلة من التطور .

حسنًا ، لقد توصلنا إلى استخدام typeof و exampleof ، ولكن يتم استدعاء العمليات للأولويات - تمامًا مثل الكائنات مستقيمة! كيف إذا لم يكن شيئًا؟

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

Var num = رقم جديد (23.456) ؛

في هذه الحالة ، نحصل على كائن من 23.456 البدائي.
بالنسبة لنوع الرقم ، يحتوي مُنشئ الرقم () على طريقة مساعدة إلى الدقة () - فهو يحدد عدد الأرقام المهمة للرقم. على سبيل المثال ، إذا تم تعيين عدد الأرقام المعنوية على 23.456 ، فسنحصل على الرقم 23.45.
وهنا عندما نحاول الإشارة إلى البدائي ككائن:

(23.456). إلى الدقة (4) ؛

يقوم المترجم الفوري بلف الكائن البدائي مؤقتًا في كائن عن طريق استدعاء الرقم الجديد (23.456) ثم استدعاء طريقة toPrecision () لهذا الكائن ، والتي لديه الآن. وبالتالي ، يعتقد الكثير من الناس خطأً أن كل شيء في JS هو كائن.

هناك أيضًا مثال آخر على التضليل وسوء الفهم لما يحدث. ها هو الكود:

Var str = "str" ​​؛ str.test = 'اختبار' ؛ // لن يكون هناك خطأ ، سيستمر البرنامج في العمل ، لكن console.log (str.test) ؛ // غير معرف

إذا افترضنا ، كما في السابق ، أن هذا str هو كائن ، فسوف نندهش من عدم تذكره لاختبار الخاصية الجديد. لكننا نعلم الآن أنه عند الإشارة إلى كائن بدائي ككائن ، فإنه يتم لفه مؤقتًا في كائن من النوع String. ولكن بعد اكتمال العملية ، يختفي هذا الغلاف ، ومعه اختبار الخاصية الجديد. هذا كل شيء ، لا سحر.

في الواقع ، بالنظر إلى الأمام ، أثناء لف كائن بدائي في كائن ، يتم بناء سلسلة كاملة من الميراث (كما سنتحدث عنها لاحقًا) ، ولكن في الواقع يتضح مثل "matryoshka":

كائن (رقم (<примитив>)). سيكون أصل أي كائن في JS ، بطريقة أو بأخرى ، كائن. عند استدعاء خاصية في كائن ، يمر البحث عبر "matryoshka" بالكامل حتى يعثر على هذه الخاصية في أحد الكائنات أو يعود غير محدد ، أو إذا كنت تبحث عن طريقة ، فإنه يطرح استثناءً. وبالتالي ، فإن البدائية لها أيضًا خصائص كائن الكائن المتاحة. سنتحدث عن كيفية عمل الميراث النموذجي وتعقيداته في المقالة الثانية.

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

Var str = "abc" ؛ شارع + 1 ؛ // "abc1"

هنا ، بدائية من النوع رقم - 1 سيتم تحويلها إلى سلسلة أولية. في الكائنات ، تتوفر هذه الميزة عن طريق استدعاء طريقة toString () ، في كائنات من نوع رقم ، توجد قيمة طريقة () تعيد رقمًا أوليًا من النوع. لكننا قلنا نوعًا ما أن الأشياء فقط هي التي يمكن أن يكون لها طرق. إذن في عملية تحويل بدائي من نوع إلى آخر ، هناك أيضًا التفاف في كائن؟ أنا أؤكد لك لا. تسمى هذه الطريقة ضمنيًا عندما يتم استدعاء دالة المُنشئ بواسطة المترجم بدون عامل التشغيل الجديد. ما هو نوع المشغل السحري الجديد وماذا يحدث عندما يتم استدعاء دالة مُنشئ بدونها ، وما هي وظيفة المُنشئ بحق الجحيم ، سنتحدث في المقالة التالية. في الوقت الحالي ، اعتبر كلامي - تحويل الكتابة يحدث على الفور - من البدائي إلى البدائي.

حتى الآن ، بالطبع ، هناك أسئلة أكثر من الإجابات ، ومع ذلك ، صدقوني ، سيصبح كل شيء أكثر شفافية بعد قراءة المقال الثاني. هنا أثارت اهتمامي بشكل رئيسي وأثارت عددًا من الأسئلة - إذا جاز التعبير ، فقد أثارت العقول. ولكن لا يزال هناك شيء يمكن تعلمه من هذه المقالة:
1. على الرغم من الرأي السائد "كل شيء في JS هو كائنات" - هذا ليس هو الحال ، اكتشفنا أنه من بين 6 أنواع من البيانات المتاحة للمبرمج ، هناك 5 أنواع أولية وواحد فقط يمثل نوع كائن.
2. فيما يتعلق بالكائنات ، علمنا أن هذا هيكل بيانات يحتوي على أزواج مفتاح - قيمة. عندما يمكن أن تكون القيمة أيًا من أنواع البيانات (وستكون هذه خاصية للكائن) أو وظيفة (وستكون هذه طريقة للكائن).
3. لكن الأوليات ليست أشياء. على الرغم من أنه يمكنك العمل معهم كما هو الحال مع كائن (وهذا يسبب سوء الفهم بأن الكائن البدائي هو كائن) ، ولكن ...
4. يمكن التصريح عن المتغيرات بطريقة بسيطة (حرفية) (var a = "str") ، أو من خلال دالة مُنشئ (مغلّف) (var a = new String ("str")). في الحالة الثانية ، لن نتلقى كائنًا بدائيًا بعد الآن ، بل كائنًا تم إنشاؤه بواسطة وظيفة التجميع String (). (سوف نتعلم ما هو العامل السحري الجديد وما هي وظيفة المُنشئ).
5. لقد تعلمنا أنه من خلال إنشاء غلاف فوق سلسلة بدائية (سلسلة جديدة ("str")) بالتحديد يمكنك العمل معها ككائن. هذا هو الغلاف الذي ينشئه المترجم حول البدائي عندما نحاول التعامل معه كما هو الحال مع كائن ، ولكن بعد اكتمال العملية ، يتم إتلافه (لذلك ، لن يتمكن المترجم البدائي أبدًا من تذكر الخاصية التي نسندها إليه it a.test = 'test' - ستختفي خاصية الاختبار مع الغلاف).
6. تعلمنا أن الكائنات لها طريقة toString () تُرجع تمثيل سلسلة لكائن (بالنسبة للنوع numberOf () ، ستُرجع قيمة رقمية).
7. أدركنا أنه عند إجراء عمليات التسلسل أو العمليات الحسابية ، يمكن للأولويات إعادة تعريف نوعها إلى النوع المطلوب. للقيام بذلك ، يستخدمون وظائف الغلاف من أنواعهم ، ولكن بدون عامل التشغيل الجديد (str = String (str)). (ما هو الفرق وكيف يعمل ، دعنا نتحدث أكثر)
8. أخيرًا ، علمنا أن typeof يأخذ قيمًا من جدول مشفر (هذا هو المكان الذي يأتي منه مفهوم خاطئ آخر يعتمد على typeof null // object).

المتغير عبارة عن جزء مسمى من الذاكرة يمكنك من خلاله حفظ بعض المعلومات والحصول عليها منها.

يتم التصريح عن (إنشاء) المتغيرات باستخدام كلمة var.

// message هو اسم رسالة var المتغيرة ؛

عندما تقوم بإنشاء متغير ، يمكنك تعيين قيمة له على الفور.

يتم تعيين قيمة للمتغير باستخدام عامل التشغيل "=".

// على سبيل المثال ، أنشئ بريدًا إلكترونيًا متغيرًا وقم بتعيين السلسلة " [البريد الإلكتروني محمي]"var email =" [البريد الإلكتروني محمي]"؛ // اضبط متغير البريد الإلكتروني على قيمة جديدة للبريد الإلكتروني =" [البريد الإلكتروني محمي]";

من أجل الحصول على قيمة المتغير ، ما عليك سوى الرجوع إليه بالاسم.

// على سبيل المثال ، اطبع قيمة متغير البريد الإلكتروني إلى وحدة تحكم المتصفح: console.log (email) ؛

للإعلان عن أكثر من متغير واحد بكلمة var واحدة ، يجب عليك استخدام فاصلة.

فار السعر = 78.55 ، الكمية = 10 ، الرسالة ؛

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

ناتج فار = "نجاح" ؛ // المتغير لديه نوع بيانات سلسلة الإخراج = 28 ؛ // نفس المتغير ، ولكن يوجد بالفعل إخراج نوع بيانات "الرقم" = صحيح ؛ // نفس المتغير ، ولكن يتم تخزين قيمة منطقية بالفعل

يمكن تغيير قيمة المتغير لعدد غير محدود من المرات.

// خلق عمر متغير متغير ؛ // العمر المتغير يتم تعيين القيمة 67 العمر = 67 ؛ // يتم تعيين العمر المتغير على "سن التقاعد" = "سن التقاعد" ؛ // تم ضبط العمر المتغير على 55 عمر = 55 ؛

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

يمكن أن يتكون اسم المتغير من أحرف وأرقام ورموز $ و _. في هذه الحالة ، يجب ألا يكون الحرف الأول من المتغير رقمًا. بالإضافة إلى ذلك ، لا يمكن استخدام الكلمات المحجوزة كاسم متغير.

// أنشئ متغيرين ، المتغير الأول يسمى الهاتف ، والثاني هو القياس ؛ فار الهاتف ، رسالة ؛

حالة الأحرف في اسم متغير مهمة. هذا ، على سبيل المثال ، الهاتف المتغير والهاتف هما متغيرين مختلفين.

إذا لم يتم استخدام الوضع المقيد ، يمكنك إنشاء متغير بالقيمة الأصلية بدون الكلمة الأساسية var.

السعر = 250.00؛ // أنشئ متغيرًا وقم بتهيئته بـ 250.00 بالمائة = "20٪" ؛ // إنشاء متغير وتهيئته بالسلسلة "20٪"

لكن لا يوصى بإنشاء متغيرات بهذه الطريقة.

أنواع البيانات

في JavaScript ، يمكن تقسيم أنواع البيانات إلى أنواع بدائية وأنواع كائنات.

المتغيرات التي تحتوي على أنواع البيانات الأولية تخزن القيمة بشكل صريح.

يميز JavaScript خمسة أنواع أساسية من البيانات:

  • رقم (رقم) ؛
  • سلسلة (سلسلة) ؛
  • نوع منطقي (منطقي) ؛
  • باطل؛
  • غير معرف.

إذا تم تعيين قيمة لمتغير آخر يحتوي على نوع بيانات بدائي ، فسيحصل عندئذٍ على نسخته الخاصة من تلك القيمة.

فار س = 77 ، ص = س ؛ س = 55 ؛ ذ ؛ // 77

المتغيرات التي تحتوي على كائن لا تخزن الكائن نفسه فعليًا ، ولكنها تخزن مرجعًا إليه.

إذا قمت بتعيين قيمة لمتغير إلى آخر يحتوي على كائن (مرجع له) ، فسيحصل أيضًا على مرجع له. نتيجة لهذه العملية ، سيحتوي هذان المتغيران على مرجع لنفس الكائن.

// المثال 1 (مع نوع البيانات "كائن") var format1 = (x: 77، y: 100)، المنسق 2 = التنسيق 1؛ تنسيق1.x = 55 ؛ // قم بتعيين خاصية x للكائن على قيمة جديدة format2.x ؛ // 55 ، لأن تنسيق 1 و تنسيق 2 يحتويان على مرجع لنفس الكائن // المثال 2 (مع نوع البيانات "مصفوفة") var format1 =، coord2 = coord1؛ تنسيق 1 = 55 ؛ / / تعيين العنصر مع فهرس 0 إلى قيمة جديدة تنسيق 2 ؛ // 55 ، لأن تنسيق 1 و تنسيق 2 يحتويان على مرجع لنفس الكائن // المثال 3 (مع نوع البيانات "تاريخ") var date1 = new Date (2018،00،01)، date2 = date1؛ date2 = date2.setDate (date2.getDate () + 7) ؛ // زيادة التاريخ بمقدار 7 أيام date1 ؛ // 01/07/2018 بسبب يحتوي التاريخ 1 والتاريخ 2 على مرجع لنفس الكائن

عدد

النوع الرقمي في بيانات JavaScript عام. يتم استخدامه لتمثيل كل من الأعداد الصحيحة والكسرية.

فار إنت = 5 ؛ // عدد صحيح var float = 5.98 ؛ // رقم كسري

يتم تنفيذ تنسيق تمثيل الأرقام في JavaScript وفقًا لمعيار IEEE 754-2008.

يمكن تحديد الأعداد الصحيحة في JavaScript ليس فقط بالتدوين العشري ، ولكن أيضًا بالرقم الثماني (0) أو نظام رقم سداسي عشري (0x)باستخدام البادئات الواردة بين قوسين:

فار إنت = 010 ؛ // 8 int = 055 ؛ // 45 int = 0xFF ؛ // 255 int = 0xB8 ؛ // 184

من الممكن كتابة الأرقام متسارع:

Var num = 2e3 ؛ // التدوين الأسي للرقم 2 * 10 ^ 3 (2000) num = 2e-3 ؛ // التدوين الأسي للرقم 2 * 10 ^ -3 (0.002) num = 3.2e3 ؛ // 3200 عدد = 1.5e-2 ؛ // 0.015

يحتوي نوع البيانات الرقمية بالإضافة إلى الأرقام قيم عددية خاصة:

  • اللانهاية (اللانهاية الموجبة) ؛
  • - اللانهاية (اللانهاية السلبية) ؛
  • NaN (ليس رقمًا).

تعني القيمة الخاصة إنفينيتي عددًا موجبًا كبيرًا جدًا ، أي رقم لا يمكن تمثيله في JavaScript لأنه كبير جدًا.

القيم الخاصة - اللانهاية تعني ، على العكس من ذلك ، عددًا سالبًا كبيرًا جدًا ، أي رقم لا يمكن تمثيله بواسطة JavaScript لأنه كبير جدًا أيضًا.

مثال على التعبيرات نتيجة الحساب الذي سيكون تم إرجاع القيم الرقمية الخاصة:

5/0 ؛ // إنفينيتي -5/0 ؛ // -Infinity Math.pow (10،399) ؛ // إنفينيتي (10 أس 399) Math.pow (10،399) ؛ // -Infinity (-10 إلى قوة 399)

يتم إرجاع قيمة NaN كنتيجة لإجراء عمليات حسابية يتعذر على JavaScript حسابها.

5 - "مرحبا" ؛ // NaN (اطرح السطر من الرقم 5) 1000 / "20px" ؛ // NaN (الرقم مقسومًا على سلسلة) صحيح * "1rem" ؛ // NaN (صحيح منطقي مضروبًا في سلسلة)

ومع ذلك ، فإن الشيء المثير للاهتمام هو أن قيمة NaN في JavaScript لا تساوي أي شيء ، بما في ذلك نفسها.

NaN == NaN ؛ // false NaN === NaN ؛ // خاطئة

نوع البيانات المنطقية

Boolean هو نوع بيانات بدائي يحتوي على قيمتين فقط: true و false.

فار أ = صحيح ؛ فار ب = خطأ ؛

سلسلة

السلسلة عبارة عن نوع بيانات تستخدمه JavaScript لتمثيل النص.

يمكن أن تتكون سلسلة JavaScript من 0 أو أكثر من الأحرف.

يستخدم JavaScript دائمًا ترميز Unicode كتنسيق سلسلة.

يتم إنشاء سلسلة (سلسلة حرفية) بواسطة إحاطة النص بعلامات اقتباس مفردة أو مزدوجة.

"جافا سكريبت" ؛ "ECMAScript" ؛

لا يوجد فرق في JavaScript بين علامات الاقتباس المفردة والمزدوجة.

ولكن ، في بعض الحالات ، من المنطقي استخدام علامات اقتباس مفردة فقط ، وليس علامات اقتباس مزدوجة ، والعكس صحيح.

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

"" ECMAScript "" ؛ // لا يوجد هروب (باستخدام علامات الاقتباس المفردة) "\" ECMAScript \ "" ؛ // هرب

يمكن أن تحتوي سلسلة JavaScript على أحرف خاصة. على سبيل المثال ، \ n (تغذية السطر) ، \ t (علامة التبويب) ، \ r (إرجاع السطر) ، إلخ.

"هذا اقتراح. \ NA وهذا أيضًا اقتراح ، لكنه سيبدأ في سطر جديد." ؛

باستخدام السلاسل ، يمكنك إجراء عملية الإضافة (الاتحاد) أو ، بعبارة أخرى ، التسلسل. عامل التشغيل "+" مستخدم لهذا الغرض. الفكرة وراء هذه العملية هي إلحاق السطر الثاني بنهاية السطر الأول.

"أحب" + "JavaScript" ؛ // أنا أحب JavaScript

القيمة "غير محددة"

undefined هو نوع بيانات بدائي خاص له قيمة واحدة تساوي undefined.

يحتوي نوع البيانات هذا على متغير مُصرح به لم يتم تعيين قيمة له بعد.

فار الأسطوانات ؛ // غير معرف

سيتم أيضًا إرجاع القيمة غير المحددة عند الوصول إلى خاصية كائن غير موجودة.

Var obj = () ؛ // كائن فارغ obj.prop؛ // غير معرف

القيمة "خالية"

القيمة الفارغة هي نوع بيانات بدائي خاص له قيمة واحدة تساوي قيمة خالية.

القيمة الفارغة هي مجرد قيمة خاصة لها معنى "لا شيء" أو "قيمة غير معروفة" ، أي من الواضح أنه لا يعني شيئًا.

موضوع

الكائن عبارة عن بنية بيانات تتكون من أزواج الاسم والقيمة.

يتم إنشاء الكائن باستخدام التدوين الحرفي للكائن على النحو التالي:

(name_1: value_1، name_2: value_2، name_3: value_3، ...)

كما ترى ، يتم فصل الاسم عن القيمة بنقطتين ، والأزواج بين بعضها البعض بفاصلة.

علاوة على ذلك ، إذا كانت الوظيفة تعمل كقيمة للزوج ، فإنها تسمى طريقة لهذا الكائن. جميع الأزواج الأخرى ، أي الأزواج التي لا يتم فيها استخدام دالة كقيمة تسمى خصائص الكائن.

بمعنى آخر ، الكائن هو بنية بيانات مكونة من خصائص وطرق.

Var person = (الاسم: "Vitaliy" ، العمر: 27 ، getAge: function () (إرجاع "Age:" + this.age؛))

يتم الوصول إلى خصائص الكائن باستخدام نقطة أو أقواس.

// طباعة قيمة خاصية العمر إلى وحدة تحكم المتصفح // طريقة واحدة (من خلال نقطة) console.log (person.age) ؛ // الطريقة الثانية (باستخدام الأقواس) console.log (الشخص ["العمر"]) ؛ // استدعاء طريقة getAge ؛ ستتم طباعة القيمة التي يتم إرجاعها إلى وحدة التحكم console.log (person.getAge ()) ؛

نوع العامل

يتم استخدام عامل التشغيل typeof للحصول على معلومات نوع البيانات للتعبير كسلسلة.

صيغة عامل التشغيل typeof (خيار بدون أقواس) هي:

نوع التعبير

صيغة العامل typeof (باستخدام الأقواس) هي:

Typeof (تعبير)

اسم المتغير ، العمر = 37 ، البريد الإلكتروني = " [البريد الإلكتروني محمي]"، isLicense = true، Interest: null، lastExperience: (الفترة:" يونيو 2011 - يونيو 2018 "، المكان:" ISACA، Moscow "، position:" Web designer ")، getExperience: function () (return lastExperience.period + "(" + lastExperience.position + "-" + lastExperience.place + ")" ؛)؛ typeof name؛ // "undefined" typeof age؛ // "number" typeof isLicense؛ // "boolean" typeof الفائدة؛ / / "object" (1) typeof lastExperience ؛ // "object" typeof getExperience ؛ // "function" (2) / * (1) هي خلل كان موجودًا في اللغة منذ أول تطبيق لها ؛ لم يكن كذلك ثابت من أجل الحفاظ على التوافق وهذا يجب أن يؤخذ في الاعتبار عند كتابة البرامج النصية ؛ null هو نوع بيانات بدائي ، وليس كائنًا * / / * (2) - من الملائم جدًا أن يفصل نوع المشغل الوظائف بشكل منفصل ؛ ولكن وظيفة في JavaScipt هي أيضًا كائن ؛ يمكنك بسهولة التحقق من ذلك إذا قمت بتنفيذ البناء التالي: * / typeof getExperience .__ proto __.__ proto__ // "object" (النموذج الأولي للوظيفة هو كائن)

الثوابت

مع إصدار ECMAScript 6 ، أصبح من الممكن إنشاء ثوابت. يتم ذلك باستخدام كلمة const.

CONST COLOR_RED = "# ff0000" ؛

الثابت هو متغير تكون قيمته محمية من التعديل. أولئك. سيظهر خطأ عند محاولة تغيير القيمة.

CONST COLOR_RED = "# ff0000" ؛ COLOR_RED = "# f44336" ، // خطأ نوع غير معلوم: التعيين إلى متغير ثابت.

إذا كان الثابت ، على سبيل المثال ، يحتوي على كائن ، فلا يمكن تغييره ، أو بالأحرى الإشارة إليه. لكن يمكن تغيير خصائص هذا الكائن.

ألوان Const = (أحمر: "# ff0000" ، أخضر: "# 00ff00" ، أزرق: "# 00ff00") الألوان = ["# ff0000" ، "# 00ff00" ، "# 00ff00"] ؛ // خطأ نوع غير معلوم: التعيين إلى متغير ثابت. COLORS.green = "# 4caf50" ؛

كما هو الحال في أي لغة برمجة أخرى ، يتم تقسيم أنواع البيانات في JS إلى:

- المتغيرات والحروف

- المصفوفات والوظائف والأشياء

حرفية:

Literals هي الوحدات الأكثر بدائية في أي لغة برمجة ، مثل الأرقام والرموز. في JavaScript ، يتم تقسيم القيم الحرفية إلى عدد وسلسلة:

عدد حرفية سلسلة حرفية

4.5e + 2 "أنواع البيانات في JavaScript"

يمكنك استخدام القيم الحرفية في كود JS لعمليات التعيين والمقارنة:

var pi = "رقم PI" ؛

إذا (q == "b") q = b + 1 ؛

المتغيرات:

حسنًا ، يا لها من لغة برمجة بدون متغيرات. بشكل عام ، يمكن تسمية المتغيرات بأمان أساس أي لغة برمجة. لا يمكن تنفيذ أي دالة أو حلقة أو عبارة تقريبًا بدون استخدام المتغيرات.

يسمح لك JavaScript بتعيين القيم الحرفية لنوع البيانات هذا ، ولكن أيضًا تعيين المصفوفة بأكملها أو الوظيفة بأكملها أو اسم كائن. يمكنك تعيين المتغيرات إما تمامًا مثل ذلك في أي مكان في البرنامج ، أو باستخدام عبارة var:

معرف = window.close () ؛

var arr = new Array () ؛

ob = document.forms ؛

هناك نوعان رئيسيان من المصفوفات في JavaScript:

مضمن في المترجم الفوري (نماذج المستندات ، صور المستندات ، ...)

تعريف المستخدم

يتم إنشاء مصفوفة باستخدام بناء Array () الجديد ؛

أ = صفيف جديد () ؛ ب = صفيف جديد (15) ؛ c = صفيف جديد (15.33 ، "القيمة 3") ؛

في الحالة الأولى ، يتم تعيين متغير a مصفوفة فارغة ، وفي المتغير الثاني b يتم تعيين مصفوفة ، القيمة الأولى منها هي الرقم 15 ، وأخيراً ، في الحالة الثالثة ، يتم تعيين متغير c مصفوفة من 3 قيم والثالث سلسلة حرفية.

توجد عدة طرق رئيسية للتعامل مع المصفوفات في JS:

انضم ()؛ عكس () ؛ فرز () ؛

فيما يلي قائمة بالمشغلين الرئيسيين الذين سنأخذهم بعين الاعتبار:

فار. (...) ؛ لو؛ في حين؛ ل؛ ل ... في ؛ استراحة؛ استمر؛ إرجاع.

3. المتغيرات وعامل التخصيص في JavaScript.

عامل التخصيص الأساسي هو المعادلة = المعتادة ، والتي تعطي المعامل الأيسر قيمة المعامل الأيمن.

العوامل المتبقية هي اختصار للأشكال التالية: عامل التشغيل المختصر المعنى

س + = ص س = س + ص

س - = ص س = س - ص

س * = ص س = س * ص

س / = ص س = س / ص

x٪ = y x = x٪ y

x<<= y x = x << y

س >> = ص س = س >> ص

x >>> = y x = x >>> y

x & = y x = x & y

س ^ = ص س = س ^ ص

س | = ص س = س | ذ

4. عوامل التشغيل في JavaScript.

يتم استخدام عوامل التشغيل للتحكم في تدفق الأوامر في JavaScript. يمكن تقسيم كائن واحد إلى عدة أسطر ، أو على العكس من ذلك ، يمكن أن يكون هناك العديد من العوامل في سطر واحد.

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

نظرًا لأن JavaScript لا يحتوي على متطلبات صارمة لتنسيق نص البرنامج ، يمكنك إدراج موجزات الأسطر وأحرف المسافة البادئة لقراءة النص بشكل أفضل.

فيما يلي العوامل المستخدمة في JavaScript:

كسر ، تعليق ، متابعة ، من أجل ... في ، وظيفة ، إذا ... آخر

جافا سكريبتأو شبيبة(مختصر) ليست لغة سهلة ولا يعرفها المطورون المبتدئون على الفور. في البداية يتعلمون الأساسيات ويبدو كل شيء ملونًا وجميلًا. عند التعمق أكثر قليلاً ، تظهر مصفوفات JavaScript والأشياء وعمليات الاسترجاعات وما شابه ذلك ، والتي غالبًا ما يأخذها الدماغ.

في JavaScript ، من المهم التحقق من نوع المتغير بشكل صحيح. لنفترض أنك تريد معرفة ما إذا كان المتغير مصفوفة أم كائنًا؟ كيف تتحقق منه بشكل صحيح؟ في هذه الحالة بالذات ، هناك حيل أثناء الفحص وهذا هو موضوع هذا الإدخال. لنبدأ على الفور.

التحقق من نوع المتغير

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

لقد كتبت هذا المثال لتوضيح سبب عدم كون typeof هو الخيار الصحيح دائمًا.

Var _comparison = (سلسلة: "string"، int: 99، float: 13.555، object: (hello: "hello")، array: new Array (1، 2، 3))؛ // إرجاع مصفوفة بمفاتيح كائنات var _objKeys = Object.keys (_comparison)؛ لـ (var i = 0 ؛ i<= _objKeys.length - 1; i++) { // выведем в консоль тип каждой переменной console.log(typeof _comparson[_objKeys[i]]); }

نتيجة تنفيذ الكود:

كائن رقم السلسلة رقم

حق؟ - بالطبع لا. هناك مشكلتان. سيتم وصف كل منهم بالتفصيل وسيتم اقتراح حل.

المشكلة الأولى: الرقم العائم ، الناتج كرقم

لا يعد موقع Comparison.float عددًا ويجب أن يكون عددًا عائمًا بدلاً من رقم. لإصلاح ذلك ، يمكنك إنشاء دالة مع التحقق من الصحة كما هو موضح في الكود أدناه.

Var _floatNumber = 9.22 ؛ var _notFloatNumber = 9 ؛ console.log (isFloat (_floatNumber)) ، console.log (isFloat (_notFloatNumber)) ، console.log (isFloat ("")) ؛ الوظيفة isFloat (n) (رقم الإرجاع (n) === n && n٪ 1! == 0 ؛)

تتحقق الدالة isFloat () من جميع القيم لأرقام الفاصلة العائمة. أولاً ، يتحقق مما إذا كان المتغير يساوي ن number (رقم (ن) === n) وإذا كان الأمر كذلك ، فسيتم إجراء فحص آخر للقسمة مع الباقي ، وإذا كان هناك باقي ، فسيتم إجراء فحص منطقي ( حقيقيةأو خاطئة) النتيجة (ن٪ 1! == 0).

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

المشكلة الثانية: تم تعريف المصفوفة ككائن

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

هناك عدة طرق لاختبار متغير لنوع مصفوفة.

الخيار الأول (خيار جيد). نتحقق مما إذا كانت البيانات تنتمي إلى مصفوفة باستخدام exampleof ().

Var data = new Array ("hello"، "world")؛ var isArr = مثيل البيانات من Array ؛

الخيار الثاني (خيار جيد). ترجع طريقة Array.isArray () قيمة منطقية ، والتي ستعتمد على ما إذا كان المتغير مصفوفة أم لا ().

Var data = new Array ("hello"، "world")؛ var isArr = Array.isArray (بيانات) ؛

الخيار الثالث (الأفضل ولكن الأطول). للراحة ، يمكنك جعل هذه وظيفة. باستخدام Object ، نقوم بذلك. إذا كانت نتيجة Object.prototype.toString.call (data) غير متساوية ، فإن المتغير ليس مصفوفة ().

Var data = new Array ("hello"، "world")؛ var isArr = Object.prototype.toString.call (بيانات) == ""؛ console.log (isArr) ،

النتيجة الأخيرة كدالة ملائمة:

الوظيفة isArray (بيانات) (إرجاع Object.prototype.toString.call (بيانات) == "")

يمكنك الآن استدعاء دالة isArray () وتعيين مصفوفة أو أي شيء آخر كوسيطة ورؤية النتيجة.

خاتمة

تبين أن التسجيل كان كبيرًا إلى حد ما مما كان مقررًا في الأصل. لكنني سعيد به ، لأنه يصف بإيجاز ووضوح الصعوبات في التحقق من المتغيرات في JavaScript وكيفية الالتفاف عليها.

إذا كان لا يزال لديك أي أسئلة - اكتبها أدناه في هذا الإدخال. سأكون سعيدا للمساعدة.

جافا سكريبتتم إنشاؤه بواسطة مبرمج بريندان إيشمن Netscape وتم طرحه في ديسمبر 1995 تحت اسم LiveScript. تمت إعادة تسميته بسرعة JavaScript ، على الرغم من أن الاسم الرسمي لجافا سكريبت هو ECMAScript. تم تطوير ECMAScript وصيانته بواسطة المنظمة الدولية ECMA (الرابطة الأوروبية لمصنعي الكمبيوتر).

ما هو جافا سكريبت؟
1) JavaScript هي لغة برمجة نصية أو نصوص. البرنامج النصي هو رمز برنامج - مجموعة من التعليمات التي لا تتطلب معالجة مسبقة (على سبيل المثال ، تجميع) قبل التشغيل. يتم تفسير تعليمات JavaScript البرمجية بواسطة محرك المتصفح عند تحميل صفحة الويب. يقوم مترجم المتصفح بإجراء تحليل ومعالجة وتنفيذ للبرنامج الأصلي أو الاستعلام سطريًا.

2) JavaScript هي لغة موجهة للكائنات ذات وراثة نموذجية. وهو يدعم كائنات متعددة مدمجة ويتيح لك أيضًا إنشاء أو حذف كائناتك (المخصصة). يمكن للكائنات أن ترث الخصائص مباشرة من بعضها البعض ، وتشكل سلسلة كائن نموذج أولي.

جافا سكريبت على صفحات الويب

1. ربط البرامج النصية بمستند html

نصوص جافا سكريبت هي مغروس، بمعنى آخر. يعد محتواها جزءًا من المستند ، و خارجيمخزنة في ملف منفصل بامتداد .js. يمكن تضمين البرامج النصية في مستند html بالطرق التالية:

أو نص الصفحة.



تُستخدم هذه الطريقة عادةً للنصوص الكبيرة أو البرامج النصية التي يُعاد استخدامها عبر صفحات الويب المختلفة.

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

العنصر الداخلي

2. أنواع البيانات والمتغيرات في JavaScript

الكمبيوتر معالجة المعلومات - البيانات. يمكن تقديم البيانات في أشكال أو أنواع مختلفة. يتم تنفيذ الكثير من وظائف JavaScript من خلال مجموعة بسيطة من الكائنات وأنواع البيانات. تعتمد الوظيفة المرتبطة بالسلاسل والأرقام والمنطق على أنواع البيانات الخطية والرقمية والمنطقية. يتم إنجاز وظائف أخرى ، بما في ذلك التعبيرات العادية والتواريخ والعمليات الحسابية ، باستخدام كائنات RegExp و Date و Math.

حرفيةفي JavaScript هي فئة خاصة من نوع البيانات ، قيم ثابتة لأحد أنواع البيانات الثلاثة - سلسلة أو رقمية أو منطقية:

"هذه هي السلسلة" 3.14 تنبيه حقيقي ("مرحبًا") ؛ // "مرحبًا" عبارة عن var myVariable حرفي = 15 ؛ // 15 هو حرفي

نوع البيانات البدائيهو مثيل لنوع بيانات معين مثل سلسلة ، رقمية ، منطقية ، فارغة وغير محددة.

2.1. المتغيرات في JavaScript

البيانات التي تتم معالجتها بواسطة JavaScript هي المتغيرات... المتغيرات تسمى الحاويات التي تخزن البيانات (القيم) في ذاكرة الكمبيوتر التي يمكن أن تتغير أثناء تنفيذ البرنامج. المتغيرات لها اسم, نوع منو المعنى.

اسم المتغير ، أو المعرف، يمكن أن تتضمن فقط الأحرف az ، AZ ، والأرقام من 0 إلى 9 (لا يمكن أن يكون الرقم هو الأول في اسم متغير) ، وحرف $ (يمكن أن يكون فقط الحرف الأول في متغير أو اسم وظيفة) وشرطة سفلية _ ، بدون مسافات مسموح. طول اسم المتغير غير محدود. من الممكن ، لكن لا ينصح ، كتابة أسماء متغيرة بأحرف الأبجدية الروسية ، لذلك يجب كتابتها في Unicode.

لا يمكنك استخدام كلمات JavaScript الأساسية كاسم متغير. أسماء المتغيرات في JavaScript حساسة لحالة الأحرف ، مما يعني أن رسالة var المتغيرة ؛ ورسالة فار. - متغيرات مختلفة.

يتم إنشاء (إعلان) متغير باستخدام الكلمة الأساسية var متبوعة باسم المتغير ، على سبيل المثال ، var message ؛ ... يجب عليك التصريح عن متغير قبل استخدامه.

عامل مهيأالقيمة باستخدام عامل الإسناد = ، على سبيل المثال ، var message = "Hellow" ؛ ، بمعنى آخر. يتم إنشاء متغير الرسالة وتخزينه فيه مبدئيالقيمة "مرحبا". يمكن التصريح عن متغير بدون قيمة ، وفي هذه الحالة يتم تعيين قيمة افتراضية غير محددة له. يمكن أن تتغير قيمة المتغير أثناء تنفيذ البرنامج النصي. يمكن الإعلان عن متغيرات مختلفة على نفس السطر ، وفصلهم بفاصلة:

رسالة Var = "مرحبًا" ، number_msg = 6 ، time_msg = 50 ؛

2.2. أنواع البيانات المتغيرة

JavaScript هي لغة غير منبثقة ؛ لا تحتاج إلى تحديد نوع البيانات لمتغير معين عند التصريح عنه. يعتمد نوع بيانات المتغير على القيم التي يأخذها. يمكن أن يتغير نوع المتغير أثناء تنفيذ العمليات بالبيانات ( الصب الديناميكي). يتم إجراء تحويل النوع تلقائيًا وفقًا للسياق الذي يتم استخدامه فيه. على سبيل المثال ، في التعبيرات التي تتضمن قيمًا رقمية وسلسلة مع عامل التشغيل + ، يحول JavaScript القيم الرقمية إلى سلاسل:

رسالة Var = 10 + "أيام قبل الإجازة" ؛ // سيعود "قبل 10 أيام من الإجازة"

يمكنك الحصول على نوع بيانات المتغير باستخدام عامل التشغيل typeof. يقوم هذا العامل بإرجاع سلسلة تحدد النوع المقابل.

النوع 35 ؛ // سيعيد "رقم" typeof "text" ؛ // سيعيد "سلسلة" typeof true ؛ // سيعيد typeof "المنطقية" ؛ // سيعيد نوع "الكائن" غير محدد ؛ // سيعيد typeof null "غير محدد" ؛ // سيعيد "كائن"

جميع أنواع البيانات في JavaScript مقسمة إلى مجموعتين - بسيطأنواع البيانات (أنواع البيانات الأولية)و مركبأنواع البيانات (أنواع البيانات المركبة).

إلى بسيطتتضمن أنواع البيانات سلسلة ، ورقمية ، ومنطقية ، وخالية ، ومحددة.

2.2.1. نوع السلسلة

يستخدم لتخزين سلسلة من الأحرف محاطة بعلامات اقتباس مزدوجة أو مفردة. مجموعة الأحرف الفارغة ، المحاطة بعلامات اقتباس مفردة أو مزدوجة ، عبارة عن سلسلة فارغة. الرقم المقتبس هو أيضًا سلسلة.

فار المال = "" ؛ // سلسلة فارغة ، صفر حرف var work = "test" ؛ var day = "Sunday" ؛ var x = "150" ؛

يمكنك تضمين علامة اقتباس فردية في سلسلة ذات علامات اقتباس مزدوجة والعكس صحيح. يتم إيقاف تشغيل نفس النوع من علامات الاقتباس باستخدام حرف الخط المائل العكسي \ (ما يسمى ب تسلسل الهروب):

Document.writeln ("\" صباح الخير ، إيفان إيفانوفيتش! \ "\ N") ؛ // سيعرض "صباح الخير ، إيفان إيفانوفيتش!"

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

2.2.2. النوع الرقمي (رقم)

تستخدم للقيم الرقمية. هناك نوعان من الأرقام في JavaScript: الأعداد الصحيحة (عدد صحيح)وأرقام الفاصلة العائمة (رقم النقطة العائمة)... يمكن أن تكون القيم الصحيحة موجبة ، مثل 1 أو 2 أو سالبة مثل –1 أو –2 أو صفر. 1 و 1.0 هما نفس القيمة. تتم كتابة معظم الأرقام في JavaScript بالتدوين العشري ، ويمكن أيضًا استخدام الأنظمة الثمانية والسداسية العشرية.

الخامس عدد عشريفي النظام ، يتم تعيين قيم المتغيرات الرقمية باستخدام الأرقام العربية 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 0.

الخامس ثمانيتنسيق الأرقام هو تسلسل يحتوي على أرقام من 0 إلى 7 ويبدأ بالبادئة 0.

ل السداسي عشريالتنسيق ، تتم إضافة البادئة 0x (0X) ، متبوعة بسلسلة من الأرقام من 0 إلى 9 أو الأحرف من (A) إلى f (F) ، المقابلة للقيم من 10 إلى 15.

فار أ = 120 ؛ // قيمة عددية عشرية صحيحة فار ب = 012 ؛ // التنسيق الثماني var c = 0xfff ؛ // تنسيق سداسي عشري var d = 0xACFE12 ؛ // تنسيق سداسي عشري

أرقام الفاصلة العائمة هي أرقام بها جزء عشري كسري ، أو هي أرقام معبر عنها بالتدوين الأسي. يفترض التدوين الأسي للأرقام الشكل التالي: رقم به جزء عشري كسري ، متبوعًا بالحرف e ، والذي يمكن تحديده بحروف كبيرة وصغيرة ، ثم علامة + أو - اختيارية وأس عدد صحيح.

فار أ = 6.24 ؛ // العدد الحقيقي var b = 1.234E + 2 ؛ // رقم حقيقي يعادل 1.234 X 10² var c = 6.1e-2 ؛ // رقم حقيقي يعادل 6.1 × 10‾²

2.2.3. النوع المنطقي

هذا النوع له قيمتان ، صواب (صواب) ، خطأ (خطأ). تستخدم للمقارنة والتحقق من الشروط.

Var answer = Confirm ("هل أعجبتك هذه المقالة؟ \ N انقر فوق" موافق ". إذا لم تعجبك ، فانقر فوق" إلغاء الأمر ".) ؛ إذا (الإجابة == صحيح) (تنبيه ("شكرًا!") ؛)

هناك أيضًا أنواع خاصة من القيم البسيطة:
نوع فارغ- هذا النوع له قيمة فارغة واحدة ، والتي تستخدم لتمثيل كائنات غير موجودة.

نوع غير محدد- يعني نوع المتغير المحدد عدم وجود القيمة الأولية للمتغير ، بالإضافة إلى خاصية غير موجودة للكائن.

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

2.3 المتغيرات العالمية والمحلية

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

المتغيرات المعلنة داخل عنصر