أتقن الصياغة السهمية ونطاق الكتلة والإغلاقات، ثم ابنِ نصوصًا ديناميكية باستخدام القوالب النصية.
افتح هذا الدرس في Kodokonالدوال السهمية موجودة في كل مكان في الشيفرة الحديثة: نداءات map وfilter، ومستمعو الأحداث، والوعود. قوّتها: صياغة مضغوطة مع إعادة ضمنية عندما يتّسع الجسم لتعبير واحد. وبمجرد أن تفتح أقواسًا معقوفة، يصبح return إلزاميًا من جديد.
const double = (n) => n * 2;
const isAdult = (user) => user.age >= 18;
const buildUser = (name) => ({ name, active: true });
const sum = (a, b) => {
const total = a + b;
return total;
};
console.log(double(21)); // 42
console.log(buildUser("Ana").active); // trueيحدّد النطاق المكان الذي يكون فيه المتغير مرئيًا. مع let وconst، يوجد المتغير المُعرَّف داخل كتلة (if أو for أو أقواس معقوفة) داخل تلك الكتلة فقط. آلية أساسية أخرى: تحتفظ الدالة بالوصول إلى متغيرات النطاق الذي أُنشئت فيه، حتى بعد انتهاء ذلك النطاق. هذا هو الإغلاق، وهو ما يجعل العدّادات والذواكر المؤقتة ومديري الحالة تعمل.
function createCounter() {
let count = 0;
return () => {
count += 1;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2القوالب النصية، المحدَّدة بعلامات backtick، بديل أفضل بكثير عن الدمج النصي. تُدرج تعبيرًا باستخدام ${...}، وتُحفظ فواصل الأسطر كما هي، ما يجعلها مثالية لبناء الرسائل أو مقاطع HTML.
const user = { firstName: "Nadia", cartCount: 3 };
const message = `Hello ${user.firstName}, you
have ${user.cartCount} items in your cart.`;
console.log(message);let داخل كتلة if بعد تلك الكتلة؟