المفاهيم الأساسية
javascript是一门解释型的语言,浏览器充当解释器。js执行引擎并不是一行一行的执行,而是一段一段的分析执行。تأخير البرامج النصية
يتم تعريف السمة المؤجلة في HTML4.0.1 ، والتي يتم استخدامها للإشارة إلى أن البرنامج النصي لن يؤثر على بناء الصفحة عند تنفيذه. بمعنى آخر ، سيتم تأخير البرنامج النصي حتى يتم تحليل الصفحة بأكملها قبل التنفيذ. لذلك ، فإن إعداد السمة المؤجلة في عنصر <script> يعادل إخبار المستعرض بالتنزيل على الفور ، ولكن تأخير التنفيذ. في مستندات XHTML ، قم بتعيين السمة المؤجلة على defer=“defer"
البرامج النصية غير المتزامنة
يحدد html5 سمة ASYNC لـ <script>. العقار بأكمله يشبه الخاصية التأجيل ويستخدم لتغيير سلوك معالجة البرامج النصية. وبالمثل ، على غرار التأجيل ، يعمل Async فقط مع ملفات البرنامج النصي الخارجي ويطلب من المتصفح تنزيل الملف على الفور. ولكن على عكس التأجيل ، فإن البرامج النصية التي تم وضع علامة عليها كـ ASYNC لا تضمن التنفيذ بالترتيب الذي يتم تحديده به.
الغرض من تحديد ASYNC هو منع الصفحة من انتظار ملف البرنامج النصي وتنفيذها ، وبالتالي تحميل محتويات أخرى من الصفحة بشكل غير متزامن. لذلك ، يوصى بعدم تشغيل البرامج النصية غير المتزامنة DOM أثناء التحميل
حساسية الموضوع
كل شيء في ECMASCRIPT (بما في ذلك المتغيرات وأسماء الوظائف والمشغلين) حساس للحالة.
1. متغيرات JScript
يتم تعيين المتغيرات في الذاكرة عند استخدامها لأول مرة ، لذلك يتم الرجوع إليها لاحقًا في البرامج النصية. أعلن ذلك قبل استخدام المتغيرات. يمكن استخدام الإعلانات المتغيرة باستخدام الكلمة الرئيسية VAR.
var count, amount, level; // 用单个var 关键字声明的多个声明。
تسمية متغيرة
تتضمن الأسماء المتغيرة المتغيرات العالمية ، والمتغيرات المحلية ، ومتغيرات الفئة ، ومعلمات الوظائف ، وما إلى ذلك.
يتكون التسمية المتغيرة من نوع ما بادئة + كلمات ذات مغزى ، ويتم زيادة قابلية قراءة المتغيرات والوظائف عن طريق تسمية الإبل. على سبيل المثال: Susername ، ncount.
مواصفات البادئة:
يحتاج كل متغير محلي إلى الحصول على بادئة نوع ، والتي يمكن تقسيمها إلى:
S: يمثل سلسلة. على سبيل المثال: sname ، shtml ؛ N: يمثل رقمًا. على سبيل المثال: npage ، ntotal ؛ ب: يمثل المنطق. على سبيل المثال: bchecked ، bhaslogin ؛ ج: يمثل صفيف. على سبيل المثال: Alist ، Agroup ؛ R: يمثل تعبيرًا منتظمًا. على سبيل المثال: Rdomain ، Remail ؛ F: يمثل وظيفة. على سبيل المثال: fgethtml ، finit ؛ O: يمثل كائنات أخرى غير مذكورة أعلاه ، مثل: Obutton ، Odate ؛ G: يمثل المتغيرات العالمية ، مثل: gusername ، glogintime ؛
JScript هي لغة حساسة للحالة. يجب أن يتبع إنشاء اسم متغير شرعي القواعد التالية:
لاحظ أن الحرف الأول لا يمكن أن يكون رقمًا.
يمكنك اتباع أي حرف أو رقم وتكسير ، ولكن ليس المساحات
يجب ألا يكون الاسم المتغير كلمة محجوزة.
javascript هي لغة مكتوبة ضعيفة ، ويتجاهل JavaScript المساحات غير الضرورية. يمكنك إضافة مسافات إلى البرنامج النصي لتحسين قابلية القراءة.
var هي كلمة محفوظة لـ javascript ، مما يشير إلى أن ما يلي هو الوصف المتغير ، والاسم المتغير هو معرف محدد من قبل المستخدم ، ويتم فصل المتغيرات بواسطة الفواصل.
إذا تم الإعلان عن متغير ولكن لم يتم تعيين أي قيمة له ، فإن المتغير موجود وقيمته هي قيمة JScript غير محددة.
تحويل نوع القوة
في JScript ، يمكن تنفيذ العمليات على أنواع مختلفة من القيم دون القلق بشأن استثناءات من مترجم JScript. بدلاً من ذلك ، يتغير مترجم JScript تلقائيًا (Casts) أحد أنواع البيانات إلى نوع بيانات آخر ثم يقوم بالعملية. على سبيل المثال:
تتم إضافة قيمة نتائج الحساب إلى السلسلة وقيمة الممثلين في سلسلة. إضافة القيمة المنطقية إلى السلسلة يلقي القيمة المنطقية إلى سلسلة. إضافة القيمة الرقمية إلى القيمة المنطقية يلقي القيمة المنطقية إلى قيمة رقمية.
لتحويل سلسلة بشكل صريح إلى عدد صحيح ، استخدم طريقة parseInt . لتحويل سلسلة بشكل صريح إلى رقم ، استخدم طريقة parseFloat .
مدى عمر متغيرات JavaScript : عندما تعلن متغيرًا في دالة ما ، يمكنك فقط الوصول إلى المتغير في هذه الوظيفة. عند الخروج من الوظيفة ، سيتم إلغاء هذا المتغير. هذا المتغير يسمى متغير محلي. يمكنك استخدام المتغيرات المحلية مع نفس الاسم في وظائف مختلفة ، لأن الوظائف فقط التي أعلنت المتغيرات يمكن أن تتعرف على كل متغير.
إذا أعلنت وجود متغير خارج وظيفة ، يمكن لجميع الوظائف الموجودة في الصفحة الوصول إلى المتغير. يبدأ عمر هذه المتغيرات بعد إعلانها وينتهي عند إغلاق الصفحة.
خريطة العقل المتغير JS
2. js نوع البيانات
يحتوي JScript على ثلاثة أنواع -> أنواع البيانات الرئيسية ، نوعان -> أنواع البيانات المركبة ونوع بيانات خاصين.
أنواع البيانات الرئيسية (الأساسية)
字符串数值布尔نوع البيانات المركب (المرجع)
对象数组أنواع البيانات الخاصة
Null`Undefined`نوع بيانات السلسلة: يتم استخدام نوع بيانات السلسلة لتمثيل النص في JScript. في JS ، في حين أن كل من الاقتباسات المزدوجة ("") والاقتباسات الفردية ('') يمكن أن تمثل سلاسل ، فإنها لا يوجد فرق تقريبًا. ولكن باستخدام عروض أسعار مزدوجة فقط ("") للإشارة إلى سلسلة يعتبر الأفضل.
قيمة السلسلة عبارة عن سلسلة من الأصفار أو أكثر أحرف Unicode (الحروف والأرقام وعلامات الترقيم) مرتبة معًا.
ما هو Unicode؟
يوفر Unicode قيمًا فريدة لكل حرف ، بغض النظر عن النظام الأساسي أو البرنامج أو اللغة. تم تطوير Unicode لتوفير ترميز موحد لمعالجة جميع الشخصيات الموجودة في العالم.
نوع البيانات العددية
نحتاج إلى أن نفهم أن JScript يمثل جميع القيم داخليًا كقيم النقطة العائمة ، لذلك لا يوجد فرق بين الأعداد الصحيحة وقيم النقاط العائمة في JScript.
نوع البيانات المنطقية
لا يمكن أن يكون للطراز (المنطقي) قيمتان فقط: صواب أو خطأ.
صفائف JS والأشياء
للحصول على تفاصيل ، يرجى الاطلاع
نوع البيانات الخالية: يمكنك مسح محتوى المتغير عن طريق تعيين قيمة فارغة لمتغير.
سيقوم مشغل typeof في JScript بالإبلاغ عن القيمة null كنوع Object ، وليس نوع null .
<html xmlns = "http://www.w3.org/1999/xhtml" xml: lang = "en"> <head> <meta http-equiv = "content-type" content = "text/html ؛ باطل)؛ </script> </head> <body> </body> </html>
يتم استخدام null لتمثيل كائن لم يكن موجودًا بعد ، وغالبًا ما يتم استخدامه لتمثيل وظيفة تحاول إعادة كائن غير موجود.
نوع البيانات Undefined :
سيتم إرجاع القيمة غير المحددة في الموقف التالي:
对象属性不存在,声明了变量但从未赋值。الفرق بين الفارغ وغير المحدد
تنبيه (نوع غير محدد) ؛ // إخراج "تنبيه غير محدد" (typeof null) ؛ // الإخراج "كائن" تنبيه (null == غير محدد) ؛ // الإخراج "صحيح"
يعتقد Ecmascript أن غير المحدد مشتقًا من NULL ، لذلك يتم تعريفها على قدم المساواة.
تنبيه (null === undefined) ؛ // الإخراج "false" تنبيه (typeof null == typeof غير محدد) ؛ // الإخراج "خطأ"
لاغية وغير محددة مختلفة في الأنواع ، لذلك الإخراج "خطأ". و === تعني المساواة المطلقة ، هنا فارغة === إخراج غير محدد كاذبة
بالإضافة إلى ذلك ، إليك نوع بيانات أكثر أهمية - نوع البيانات المرجعية
نوع البيانات المرجعية
نوع بيانات مرجع JavaScript هو كائن مخزّن في ذاكرة الكومة. لا يسمح JavaScript بالوصول المباشر إلى موقع وتشغيل مساحة ذاكرة الكومة. يمكنه تشغيل العنوان المرجعي للكائن في ذاكرة المكدس فقط. لذلك يتم تخزين بيانات النوع المرجعية بالفعل في ذاكرة المكدس كعنوان مرجعي للكائن في ذاكرة الكومة. يتيح لك هذا العنوان المرجعي العثور بسرعة على الكائنات المخزنة في ذاكرة الكومة.
دعنا نوضح عملية تعيين أنواع البيانات المرجعية
بالطبع ، إضافة سمة اسم إلى OBJ2 هي في الواقع إضافة سمة اسم إلى الكائنات في ذاكرة الكومة. OBJ2 و OBJ1 حفظ فقط العنوان المرجعي لكائن ذاكرة الكومة في ذاكرة المكدس. على الرغم من نسخها أيضًا ، إلا أن الكائن يشير إليه هو نفسه. لذلك ، يؤدي تغيير OBJ2 إلى تغيير OBJ1.
تشير قيم النوع الأساسي إلى قطاعات بيانات بسيطة مخزنة في ذاكرة المكدس ، أي موقع يتم فيها تخزين هذه القيم بالكامل في الذاكرة.
تشير قيمة نوع المرجع إلى تلك الكائنات المخزنة في ذاكرة الكومة ، أي أن المتغير هو في الواقع مجرد مؤشر ، والذي يشير إلى موقع آخر في الذاكرة ، حيث يتم حفظ الكائن.
باختصار ، تخزن ذاكرة الكومة القيم المرجعية ، وتخزن ذاكرة المكدس قيم النوع الثابت.
في ECMAScript ، يمكن أن يكون للمتغيرات نوعين من القيم ، وهما القيمة الأصلية والقيمة المرجعية.
شريحة بسيطة من البيانات حيث يتم تخزين القيم الأصلية في stack ، أي ، يتم تخزين قيمها مباشرة في الموقع الذي يتم الوصول إلى المتغير. الكائن المشار إليه المخزن في الكومة ( heap ) ، أي أن القيمة المخزنة في المتغير هي مؤشر ( point ) يشير إلى الذاكرة حيث يتم تخزين الكائن.
<script type = "text/javaScript"> var box = new Object () ؛ // إنشاء نوع مرجع var box = "Lee" ؛ // قيمة النوع الأساسي هي مربع السلسلة. // من الغريب إضافة سمات إلى قيم النوع الأساسية ، لأن الكائنات فقط يمكن أن تضيف سمات. تنبيه (box.age) ؛ // إنه ليس نوعًا مرجعيًا ، ولا يمكن إخراجه ؛ </script>
3. JScript مشغلي
الأولوية: يشير إلى ترتيب عمليات المشغلين. من حيث النوع العادي ، هو حساب أي جزء من العملية أولاً.
المزيج: ترتيب الحساب لنفس المشغل ذات الأولوية ، من حيث النوع العادي ، هو من أي اتجاه لحساب ، سواء كان من اليسار إلى اليمين أو من اليمين إلى اليسار.
تحويل نوع البيانات
سلسلة () إلى نوع السلسلة
الرقم () يتحول إلى نوع رقمي
منطقية () إلى نوع منطقي
parseInt : يحول سلسلة إلى عدد صحيح. ابدأ في التحليل من بداية السلسلة ، وتوقف عن التحليل في أول وضع غير محدد ، وإرجاع جميع الأعداد الصحيحة من قبل. إذا لم تبدأ السلسلة مع عدد صحيح ، فسيتم إرجاع NAN. على سبيل المثال: القيمة التي تم إرجاعها بواسطة Parseint ("150 HI") هي: 150 ، والقيمة التي تم إرجاعها بواسطة Parseint ("HI") هي: NAN.
parseFloat : يحول سلسلة إلى رقم عائم. ابدأ في التحليل من بداية السلسلة ، وتوقف عن التحليل في أول وضع غير محدد ، وإرجاع جميع الأعداد الصحيحة من قبل. إذا لم تبدأ السلسلة مع عدد صحيح ، فسيتم إرجاع NAN. على سبيل المثال: parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。
eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。4.JS التحكم في العملية
بالنسبة لبيانات التحكم في عملية JS ، إليك سوى عدد قليل من الصعوبة. لن أخوض في تفاصيل الآخرين. خريطة العقل متصلة أدناه.
1. For ... في العبارة تنفذ واحد أو أكثر من العبارات المقابلة لكل من كائن ، أو كل عنصر من عناصر الصفيف.
لبيانات (متغير في [كائن | صفيف])
المعلمة:
variable : خيار مطلوب. متغير يمكن أن يكون إما سمة كائن أو أي عنصر من عناصر الصفيف.
object ، array : اختياري. الكائن أو المصفوفة لاجتيازه.
statement : اختياري. واحد أو أكثر من العبارات التي سيتم تنفيذها بالنسبة لكل خاصية لكائن أو كل عنصر من عناصر الصفيف. يمكن أن يكون بيان مركب.
على الرغم من أن عبارات التحكم المشروطة (مثل إذا كانت العبارات) تتطلب استخدام كتل التعليمات البرمجية فقط عند تنفيذ عبارات متعددة (بدءًا من الدعامة اليسرى "{" وينتهي في الدعامة اليمنى "}") ، فإن أفضل الممارسات هي استخدام كتل التعليمات البرمجية دائمًا.
إذا (args) تنبيه (args) ؛ // من السهل إلى الأخطاء إذا (args) {Alert (args) ؛ // الموصى بها لاستخدام}بيان التحكم في عملية التحكم في عملية JS
5.js وظيفة
الوظيفة هي كتلة قابلة لإعادة الاستخدام من التعليمات البرمجية التي يقودها حدث أو تنفيذها عند استدعاءها.
يدعم Jscript وظيفتين: إحداهما وظيفة داخل اللغة ، والآخر يتم إنشاؤه بمفرده.
لا تسمح وظائف JavaScript بأي معلمات (ولكن لا يمكن حذف قوسين تحتوي على معلمات) ، ويمكن تمرير المعلمات إلى وظائف للاستخدام بواسطة الوظائف.
لمزيد من المعلومات حول الوظائف ، يرجى زيارة مقال آخر من مقالتي: ملخص وظيفة وظيفة JavaScript (IV)
تكوين الأشياء
الطريقة - الوظيفة: الإجراء ، الخصائص الديناميكية - المتغيرات: الحالة ، ثابتة
أخيرًا ، خريطة ذهنية يلخصها كبار السن: