اذهب إلى المحتوى
  • 0

ما الفرق بين var و let  في جافاسكريبت

Youssef Nasr2

السؤال

Recommended Posts

  • 0

الفرق باختصار أن الـ مجال الـ let بداخل القوسين الذي عرف بداخلهم، بينما الـ var يكون مجاله ضمن الدالة التي عرف بها.

function print() {
  var firstname = "omar";
  let lastname = " km";
  console.log(firstname, lastname); // omar km

  {
    var fname = "ahmed"
    let lname = " mohammed";
    console.log(fname, lname); // ahmed mohammed
  }
  console.log(fname); // ahmed
  console.log(lname); // Error
}
print();

كما تمت الإجابة على سؤالك اكثر من مرة على الموقع، اطلع على الإجابة التالية :

كما يوجد مقالة كاملة تتحدث عن المتغيرات في جافاسكريبت :

اطلع على var في موسوعة حسوب

اطلع على let في موسوعة حسوب

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بالإضافة إلى إجابة الأخ عمر ، الأمر أعمق بكثير ، فالفرق بين let و var قد يمتد إلى جذور compiling ، سأختصرها في هذه الأسطر 

  • Scoping rules أو الأقواس المتجعدة قد أجاب عليها الأخ @عمر قرة محمد 

  • Hoisting بينما يتم رفع المتغيرات المعلنة باستخدام كلمة var (تهيئتها بـ undefined قبل تشغيل الكود) مما يعني أنه يمكن الوصول إليها في نطاقها المرفق حتى قبل إعلانها:

    function run() {
      console.log(a); // undefined
      var a = "ahmed";
      console.log(a); // ahmed
    }
    
    run();

     

  • إنشاء خاصية الكائن global :في المستوى الأعلى ، let ، على عكس var ، لا يُنشئ خاصية على الكائن العام:

    var a = "ahmed";  // globally scoped
    let b = "sadek"; // لا يستطيع أن يكون عام 
    
    console.log(window.a); // ahmed
    console.log(window.b); // undefined

     

  • إعادة إعلان أو Redeclaration : في الوضع الصارم  ، سيسمح لك var بإعادة التصريح عن نفس المتغير في نفس النطاق بينما يقوم let بإثارة خطأ SyntaxError. 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...