:: دورة تقسيم المناطق الخطرة واستخدام المعدات الكهربية ضد الانفجار|دورات هندسة الصيانة م (آخر رد :يارا مركز ITR)       :: دورة أنظمة التأريض الوقائي و الحماية من الصواعق في شبكات القوى الكهربائية|دورات هندسة (آخر رد :يارا مركز ITR)       :: دورة برنامج جودة التغذية الكهربية|دورات هندسة الصيانة والتشغيل مركزitr (آخر رد :يارا مركز ITR)       :: دورة حوكمة البيانات والحماية وإدارة الامتثال|دورات التجارة الخارجية مركزitr (آخر رد :يارا مركز ITR)       :: دورة إدارة ونمذجة وتقييم مخاطر الائتمان|دورات التجارة الخارجية مركزitr (آخر رد :يارا مركز ITR)       :: دورة النقد الأجنبي وأسواق المال والمشتقات المالية|دورات التجارة الخارجية مركزitr (آخر رد :يارا مركز ITR)       :: دورة أساسيات تكرير النفط|دورات البترول - النفط والغاز مركزitr (آخر رد :يارا مركز ITR)       :: دورة مراقبة جودة المنتجات النفطية|دورات البترول - النفط والغاز مركزitr (آخر رد :يارا مركز ITR)       :: دورة تكنولوجيا الأنابيب في الصناعات البترولية|دورات البترول - النفط والغاز مركزitr (آخر رد :يارا مركز ITR)       :: دورة أحكام عقود التأمين وفض منازعاتها بالتحكيم|دورات التأمين مركزitr (آخر رد :يارا مركز ITR)      
اختر لونك:
وَقُلِ اعْمَلُوا فَسَيَرَى اللَّهُ عَمَلَكُمْ وَرَسُولُهُ وَالْمُؤْمِنُونَ ۖ وَسَتُرَدُّونَ إِلَىٰ عَالِمِ الْغَيْبِ وَالشَّهَادَةِ فَيُنَبِّئُكُم بِمَا كُنتُمْ تَعْمَلُونَ [ التوبة : ( 105 )] كلمة الإدارة

يرجى إختيار القسم المناسب قبل النشر وسيعاقب المخالف بإنذار أول مرة وسيتم حظره إذا تكرر ذلك كلمة الإدارة

يُمنع كتابة مواضيع السحر والشعوذة والروحانيات والابراج بكافة الأشكال والمخالف سيعاقب بحظر مؤقت وإذا تكرر سيكون حظر دائم تنبيه هام جداً



أضف رد جديد
 
LinkBack أدوات الموضوع انواع عرض الموضوع

قديم 01-04-2019, 07:19 PM   #1
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
افتراضي ما هو الفرق بين let ،var و const

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

تستعمل هذه الكلمة لإنشاء متغيرات داخل الكائن العلوي window وهذه المتغيرات إما أن تكون عامة global يمكن الوصول إليها في جميع أنحاء التطبيق أو قد تكون في نطاق محدد وهو نطاق دالة معينة (function-scoped) بحيث لا يمكن الوصول إليها خارج هذه الدالة (private variables). هذه الكلمة المفتاحية موجودة منذ الإصدارات الأولى لجافاسكريبت ولكن الوقت جاء لإضافة بدائل عنها تكون أكثر مرونة وأمانا حتى تساير هذه اللغة الإيقاع السريع الذي يتقدم به مجال برمجيات الويب والجافاسكريبت بصفة عامة. ولهذا ظهر let في الإصدار الأخير من الجافاسكريبت.
function varTest() { var x = 1; if (true) { var x = 2; // نفس المتغير console.log(x); // 2 } console.log(x); // 2 }
1
2
3
4
5
6
7
8

function varTest() {
var x = 1;
if (true) {
var x = 2; // نفس المتغير
console.log(x); // 2
}
console.log(x); // 2
}



let

بعكس var فإن let تمكننا من إنشاء متغيرات تابعة لنطاقات أضيق قد تكون دوال أو فقط تعابير شرطية
أو حلقات متكررة وغيرها ولهذا تسمى هذه المتغيرات بالإنجليزية block-scoped أي أنك لا تستطيع الوصول إليها خارج ال block الذي صُرِّح بها فيه.

function letTest() { let x = 1; if (true) { let x = 2; // متغير آخر console.log(x); // 2 } console.log(x); // 1 }
1
2
3
4
5
6
7
8

function letTest() {
let x = 1;
if (true) {
let x = 2; // متغير آخر
console.log(x); // 2
}
console.log(x); // 1
}



وعندما تحاول استعمال متغير قبل التصريح به فإنك ستحصل على خطأ جميل في برمجيتك من نوع ReferenceError على عكس ما اعتدنا علينا مع الكلمة المفتاحية var حيث كانت تعطى لكل متغير قيمة افتراضية وهي undefined حتى قبل إنشاء هذا المتغير.
const

هذه الكلمة تعمل تماما بنفس خصائص let أي أنها block-scoped كذلك إلا أنها، كما يدل على ذلك اسمها، تستعمل فقط للتصريح بالثوابت Constants التي تأخذ قيمة واحدة فقط طيلة حياة البرنامج ولا يمكن تغييرها.
function constTest(){ let x = true; if(x){ const P = 3.14; console.log(P); // 3.14 } console.log(P); // ReferenceError }
1
2
3
4
5
6
7
8
9
10

function constTest(){
let x = true;

if(x){
const P = 3.14;
console.log(P); // 3.14
}

console.log(P); // ReferenceError
}



من خصائص const أنه من الضروري إعطاء قيمة للثابتة فور التصريح بها وهذا الأمر طبيعي كون الثابتة يصرح بها عند الحاجة إليها فقط ولا يمكن تغييرها فيما بعد في ذات النطاق scope الذي أنشأت فيه.
const P = 3.14; P = 3.142 // Uncaught TypeError
1
2

const P = 3.14;
P = 3.142 // Uncaught TypeError



خاتمة

هذا ليس كل ما يمكن قوله حول هذه الكلمات المفتاحية وخصائصها، ولكننا وددنا فقط التعريف بها وبأهم أدوارها ومميزاتها وليس التعمق في تعقيداتها والمرور على كافة الحالات التي قد تصادفك معها كمبرمج.
المطورون القادمون من جافا و C++ وغيرها من اللغات المعروفة سيفهمون جيدا مفهوم block-scoped variables وفوائده، ومطورو الجافاسكريبت المتمرسون يثمنون هذه التغييرات التي ستدفع اللغة نحو الأمام. ورغم أن دعم المتصفحات والأجهزة لهذه التغيرات ليس كاملا بعد إلا أنه لن يطول انتظاره ولذلك يستحسن بكل مطور جافاسكريبت أن يبقى متيقضا وعلى علم بكل جديد حتى يندمج بشكل سلس ومرن مع كل التغييرات.

raheel غير متواجد حالياً   اقتباس
أضف رد جديد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الفرق بين الزوجة و المرأة في القرآن الكريم admin قسم القرآن الكريم 1 28-07-2019 04:53 AM
مفهوم الدوال السهمية (Arrow Functions) raheel قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 01-04-2019 06:23 PM
الفرق بين الإستضافة السحابية و الإستضافة المشتركة raheel قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 25-03-2019 05:17 PM
الفرق بين WordPress.org و WordPress.com شرح شامل القيصر قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 11-03-2019 05:39 AM
الفرق بين السنة والعام العبوق المواضيع العامة 0 17-11-2018 07:03 PM


الساعة الآن 05:27 AM

 


Content Relevant URLs by vBSEO ©2010, Crawlability, Inc.