شبيبة تعليمي

شبيبة المنزل مقدمة شبيبة شبيبة إلى أين إخراج JS بيانات شبيبة بناء جملة JS تعليقات JS متغيرات JS JS Let شبيبة كونست مشغلي JS شبيبة الحساب احالة JS أنواع بيانات JS وظائف JS كائنات JS أحداث شبيبة سلاسل شبيبة طرق سلسلة JS بحث سلسلة JS JS String Templates أرقام شبيبة طرق عدد JS صفيفات JS طرق صفيف JS ترتيب صفيف JS تكرار صفيف JS JS Array Const تواريخ شبيبة تنسيقات التاريخ JS طرق الحصول على تاريخ JS طرق تعيين تاريخ JS شبيبة الرياضيات شبيبة عشوائية شبيبة منطقية مقارنات شبيبة شروط JS مفتاح JS JS Loop For JS Loop For In. شبيبة حلقة JS لـ Of شبيبة حلقة بينما شبيبة استراحة شبيبة تكرارات مجموعات JS خرائط شبيبة شبيبة تايبوف JS نوع التحويل شبيبة Bitwise JS RegExp أخطاء JS شبيبة النطاق رفع JS وضع JS الصارم شبيبة هذه الكلمة دالة سهم JS فئات JS شبيبة شبيبة تصحيح أخطاء JS دليل أسلوب JS أفضل ممارسات JS أخطاء JS أداء JS شبيبة الكلمات المحجوزة

إصدارات JS

إصدارات JS JS 2009 (ES5) شبيبة 2015 (ES6) شبيبة 2016 شبيبة 2017 شبيبة 2018 شبيبة آي إي / إيدج تاريخ شبيبة

كائنات JS

تعريفات الكائن خصائص الموضوع طرق الكائن عرض الكائن موصلي الكائنات منشئو الكائنات نماذج الكائن كائن تكرارات مجموعات الكائن خرائط الكائن مرجع الكائن

وظائف JS

تعريفات الوظائف معلمات الوظيفة استدعاء الوظيفة استدعاء الوظيفة تطبيق الوظيفة عمليات إغلاق الوظائف

فئات JS

مقدمة عن الفصل الوراثة الطبقية فئة ثابتة

شبيبة آسينك

عمليات الاسترجاعات JS شبيبة غير متزامن وعود شبيبة شبيبة Async / انتظار

JS HTML DOM

مقدمة DOM طرق DOM مستند DOM عناصر DOM DOM HTML نماذج DOM DOM CSS الرسوم المتحركة DOM أحداث DOM مستمع أحداث DOM التنقل في DOM عقد DOM مجموعات DOM قوائم عقدة DOM

متصفح JS BOM

نافذة JS شاشة JS موقع JS تاريخ شبيبة شبيبة ملاح تنبيه منبثق لـ JS توقيت شبيبة ملفات تعريف الارتباط JS

JS Web APIs

مقدمة واجهة برمجة تطبيقات الويب واجهة برمجة تطبيقات نماذج الويب واجهة برمجة تطبيقات سجل الويب واجهة برمجة تطبيقات تخزين الويب Web Worker API واجهة برمجة تطبيقات جلب الويب واجهة برمجة تطبيقات تحديد الموقع الجغرافي على الويب

شبيبة أجاكس

مقدمة أجاكس أجاكس XMLHttp طلب AJAX استجابة AJAX ملف AJAX XML أجاكس بي إتش بي أجاكس آسيا والمحيط الهادئ قاعدة بيانات أجاكس تطبيقات أجاكس أمثلة AJAX

شبيبة شبيبة

مقدمة JSON بناء جملة JSON JSON مقابل XML أنواع بيانات JSON تحليل JSON تنسيق JSON كائنات JSON صفائف JSON خادم JSON JSON PHP JSON HTML جسون جسونب

JS مقابل jQuery

محددات jQuery jQuery HTML jQuery CSS jQuery DOM

شبيبة الرسومات

شبيبة الرسومات قماش شبيبة شبيبة بلوتلي JS Chart.js مخطط جوجل JS شبيبة D3.js

أمثلة JS

أمثلة JS JS HTML DOM إدخال JS HTML كائنات JS HTML أحداث HTML متصفح JS محرر JS تمارين شبيبة شبيبة مسابقة شهادة JS

مراجع JS

كائنات جافا سكريبت كائنات HTML DOM


نطاق جافا سكريبت

يحدد النطاق إمكانية الوصول (الرؤية) للمتغيرات.

تحتوي JavaScript على 3 أنواع من النطاق:

  • نطاق الكتلة
  • نطاق الوظيفة
  • النطاق العالمي

نطاق الكتلة

قبل ES6 (2015) ، كان لـ JavaScript النطاق العالمي والنطاق الوظيفي فقط .

قدم ES6 كلمتين أساسيتين مهمتين لجافا سكريبت: letو const.

توفر هاتان الكلمتان الأساسيتان Block Scope في JavaScript.

المتغيرات التي تم تعريفها داخل كتلة {} لا يمكن الوصول إليها من خارج الكتلة:

مثال

{
  let x = 2;
}
// x can NOT be used here

المتغيرات المعلنة varبالكلمة الأساسية لا يمكن أن يكون لها نطاق كتلة.

يمكن الوصول إلى المتغيرات المعلنة داخل كتلة {} من خارج الكتلة.

مثال

{
  var x = 2;
}
// x CAN be used here

النطاق المحلي

المتغيرات المعلنة ضمن دالة JavaScript ، تصبح محلية للوظيفة.

مثال

// code here can NOT use carName

function myFunction() {
  let carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

المتغيرات المحلية لها نطاق الوظيفة :

لا يمكن الوصول إليها إلا من داخل الوظيفة.

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

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


نطاق الوظيفة

جافا سكريبت لها نطاق وظيفي: كل وظيفة تنشئ نطاقًا جديدًا.

المتغيرات المعرفة داخل دالة لا يمكن الوصول إليها (مرئية) من خارج الوظيفة.

يتم الإعلان عن المتغيرات مع var، let وتكون constمتشابهة تمامًا عند الإعلان عنها داخل دالة.

لديهم جميعًا نطاق الوظيفة :

function myFunction() {
  var carName = "Volvo";   // Function Scope
}
function myFunction() {
  let carName = "Volvo";   // Function Scope
}
function myFunction() {
  const carName = "Volvo";   // Function Scope
}

متغيرات جافا سكريبت العامة

المتغير الذي تم الإعلان عنه خارج الدالة ، يصبح GLOBAL .

مثال

let carName = "Volvo";
// code here can use carName

function myFunction() {
// code here can also use carName
}

المتغير العام له نطاق عالمي :

يمكن لجميع البرامج النصية والوظائف الموجودة على صفحة الويب الوصول إليها. 


النطاق العالمي

المتغيرات المعلنة عالميًا (خارج أي دالة) لها نطاق عالمي .

يمكن الوصول إلى المتغيرات العامة من أي مكان في برنامج JavaScript.

يتم الإعلان عن المتغيرات مع var، let وتكون constمتشابهة تمامًا عند الإعلان عنها خارج الكتلة.

لديهم جميعًا نطاق عالمي :

var x = 2;       // Global scope
let x = 2;       // Global scope
const x = 2;       // Global scope

متغيرات جافا سكريبت

في JavaScript ، تعتبر الكائنات والوظائف أيضًا متغيرات.

يحدد النطاق إمكانية الوصول إلى المتغيرات والكائنات والوظائف من أجزاء مختلفة من الكود.



تلقائيا العالمية

إذا قمت بتعيين قيمة إلى متغير لم يتم التصريح عنه ، فسيصبح تلقائيًا متغيرًا عالميًا .

سيعلن مثال الكود هذا عن متغير عام carName، حتى لو تم تعيين القيمة داخل دالة.

مثال

myFunction();

// code here can use carName

function myFunction() {
  carName = "Volvo";
}

الوضع الصارم

تدعم جميع المتصفحات الحديثة تشغيل JavaScript في "الوضع الصارم".

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

في "الوضع الصارم" ، لا تكون المتغيرات غير المعلنة عامة تلقائيًا.


المتغيرات العالمية في HTML

مع JavaScript ، النطاق العام هو بيئة JavaScript.

في HTML ، النطاق العام هو كائن النافذة.

المتغيرات العامة المعرفة varبالكلمة الأساسية تنتمي إلى كائن النافذة:

مثال

var carName = "Volvo";
// code here can use window.carName

المتغيرات العامة المعرفة letبالكلمة الأساسية لا تنتمي إلى كائن النافذة:

مثال

let carName = "Volvo";
// code here can not use window.carName

تحذير

لا تنشئ متغيرات عامة إلا إذا كنت تنوي ذلك.

يمكن للمتغيرات العامة (أو الوظائف) أن تحل محل متغيرات النافذة (أو الوظائف).
يمكن لأي دالة ، بما في ذلك كائن النافذة ، الكتابة فوق المتغيرات والوظائف العامة.


عمر متغيرات جافا سكريبت

يبدأ عمر متغير JavaScript عندما يتم الإعلان عنه.

يتم حذف متغيرات الوظيفة (المحلية) عند اكتمال الوظيفة.

في متصفح الويب ، يتم حذف المتغيرات العامة عند إغلاق نافذة المتصفح (أو علامة التبويب).


الحجج الوظيفية

تعمل وسيطات الوظيفة (المعلمات) كمتغيرات محلية داخل الوظائف.