أحدث البرامج التعليمية وتطوير الشبكة
×

JS البرنامج التعليمي

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

JS أشكال

أشكال التحقق من صحة API أشكال

JS موضوع

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

JS وظائف

تعاريف وظيفة وظيفة المعلمات وظيفة الاحتجاج الإغلاق وظيفة

JS HTML DOM

DOM مقدمة DOM أساليب DOM وثيقة DOM عناصر DOM HTML DOM CSS DOM الرسوم المتحركة DOM أحداث DOM EventListener DOM ملاحة DOM العقد DOM Nodelist

JS المتصفح BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS أمثلة

JS أمثلة JS HTML DOM JS HTML إدخال JS HTML الأجسام JS HTML أحداث JS المتصفح JS اختبار قصير JS ملخص

JS المراجع

JavaScript الأجسام HTML DOM الأجسام


 

JavaScript Hoisting


Hoisting هو السلوك الافتراضي جافا سكريبت لتحريك الإعلانات إلى الأعلى.


ورفع الإعلانات جافا سكريبت

في جافا سكريبت، يمكن أن يتم تعريف متغير بعد أن تم استخدامه.

بعبارات أخرى؛ يمكن استخدام متغير قبل أن يتم الإعلان عنها.

مثال 1 يعطي نفس النتيجة مثل مثال 2:

مثال 1

x = 5; // Assign 5 to x

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;                     // Display x in the element

var x; // Declare x
انها محاولة لنفسك »

مثال 2

var x; // Declare x
x = 5; // Assign 5 to x

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;                     // Display x in the element
انها محاولة لنفسك »

لفهم هذا، عليك أن تفهم عبارة "hoisting" .

Hoisting هو السلوك الافتراضي جافا سكريبت نقل جميع الإعلانات إلى الجزء العلوي من النطاق الحالي (إلى الأعلى من السيناريو الحالي أو وظيفة الحالية).


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

جافا سكريبت المصاعد فقط الإعلانات، وليس التهيئة.

مثال 1 لا يعطي نفس النتيجة مثل مثال 2:

مثال 1

var x = 5; // Initialize x
var y = 7; // Initialize y

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y;           // Display x and y
انها محاولة لنفسك »

مثال 2

var x = 5; // Initialize x

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y;           // Display x and y

var y = 7; // Initialize y
انها محاولة لنفسك »

هل يعقل أن ذ غير معرفة في المثال الأخير؟

هذا هو فقط لأن إعلان (فار ص)، وليس التهيئة (= 7) ورفع إلى الأعلى.

بسبب hoisting ، وقد أعلن ذ قبل استخدامها، ولكن لأنه لم يتم رفع التهيئة، قيمة y غير معرف.

مثال 2 هو نفس الكتابة:

مثال

var x = 5; // Initialize x
var y;     // Declare y

elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y;           // Display x and y

y = 7;    // Assign 7 to y
انها محاولة لنفسك »

أعلن المتغيرات في أعلى!

Hoisting هو (إلى العديد من المطورين) سلوك غير معروف أو تجاهلها من جافا سكريبت.

إذا لا يفهم مطور hoisting ، قد تحتوي على برامج البق (أخطاء).

لتجنب الأخطاء، ودائما يعلن عن المتغيرات في بداية كل نطاق.

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

الجافا سكربت في وضع صارم لا يسمح المتغيرات لاستخدامها إذا لم يتم الإعلان عنها.
دراسة "use strict" في الفصل التالي.