شرح صفوف ومحتوى الفقرة
تختلف المُتغيرات Variables التي تُعرف بداخل الكتل البرمجية Block Scope في بيئات البرمجة علي حسب الكلمة keywords تختلف var عن let عن const ، في لغة جافا سكريبت المُتغيرات Variables المُعلن عنها داخل Block Scope يتم قرائتها خارج Block Scope ولكن باختلاف بسيط.
الاختلاف بين المتغيرات المعلن عنها داخل وخارج الكتل البرمجية Block Scope؟
- المتغيرات المعلن عنها بكلمة var keyword ليس لها كتلة برمجية block scope.
اي أن المتغيرات المعلن عنها بكلمة var keyword اعلي وخارج الكتل block scope عندما يتم اعادة الأعلان عنها أسفل وداخل block scope سوف تتبدل قيمتها بالقيمة الجديدة.
- المتغيرات المعلن عنها بكلمات const,let keyword لها كتلة برمجية block scope.
اي أن المتغيرات المعلن عنها بكلمات const,let keyword اعلي وخارج الكتل block scope عندما يتم اعادة الأعلان عنها أسفل وداخل block scope فأنها تعد متغير جديد مرئي فقط داخل block scope وخارجه متغير مختلف.
var keyword
المتغيرات المعلن عنها بكلمة var keyword هي اعادة اعلان بداخل الكتل البرمجية block scope.
let keyword
المتغيرات المعلن عنها بكلمة let keyword هي متغير مختلف عن المعلن عنه خارج الكتل البرمجية block scope.
let x = 10;
{
let x = 3;
/* x here equal 3 */
document.write("inside block scope " + x + "<br>");
}
/* x here equal 10 */
document.write("outside block scope " + x );
let keyword global scope
المتغيرات المعلن عنها بكلمة let keyword لها global scope اي أن المتغير المُعلن عنه خارج الكتل البرمجية block scope يكون له نطاق عام.
let x = 10;
{
/* x here equal 10 */
document.write("inside block scope " + x + "<br>");
}
/* x here equal 10 */
document.write("outside block scope " + x );
const keyword
المتغيرات المعلن عنها بكلمة const keyword هي متغير مختلف عن المعلن عنه خارج الكتل البرمجية block scope.
const X = 10;
{
const X = 3;
/* x here equal 3 */
document.write("inside block scope " + X + "<br>");
}
/* x here equal 10 */
document.write("outside block scope " + X );