ECMAScript 2015، المعروف أيضًا باسم ES6 (ECMAScript 6)، هو تحديث مهم لـ JavaScript، حيث يقدم تركيبًا وميزات جديدة تجعل البرمجة أكثر كفاءة وأسهل في الإدارة. تعد JavaScript إحدى لغات البرمجة الأكثر شيوعًا المستخدمة لتطوير الويب، كما تعمل التحسينات في ES6 على تحسين قدراتها بشكل كبير.
سيغطي هذا الدليل الميزات المهمة المقدمة في ES6، مع التركيز بشكل خاص على وظائف الأسهم، وهي طريقة جديدة قوية لكتابة الوظائف.
قدم ES6 طريقتين جديدتين للإعلان عن المتغيرات: Let وconst.
let: يعلن عن متغير ذو نطاق كتلة، مما يعني أن المتغير متاح فقط داخل الكتلة التي تم الإعلان عنه فيها.
let x = 10; if (true) { let x = 2; console.log(x); // 2 (inside block) } console.log(x); // 10 (outside block)
const: يعلن عن متغير ثابت لا يمكن إعادة تعيينه. ومع ذلك، هذا لا يجعل المتغير غير قابل للتغيير — فالكائنات المعلنة باستخدام const لا يزال من الممكن تغيير خصائصها.
const y = 10; y = 5; // Error: Assignment to constant variable. const person = { name: "John", age: 30 }; person.age = 31; // This is allowed.
واحدة من أكثر الميزات التي تم الحديث عنها في ES6 هي وظيفة السهم. يوفر بناء جملة أقصر وأكثر إيجازًا لوظائف الكتابة.
#### مقارنة بناء الجملة:
الوظيفة التقليدية (ES5) :
var add = function(x, y) { return x y; };
وظيفة السهم (ES6):
const add = (x, y) => x y;
إليك ما يجعل وظائف السهم مختلفة:
مثال لدالة سهم ذات سطر واحد:
const multiply = (a, b) => a * b; console.log(multiply(4, 5)); // 20
يمكن أيضًا استخدام وظائف السهم بدون معلمات:
const greet = () => "Hello, World!"; console.log(greet()); // "Hello, World!"
بالنسبة للوظائف التي تحتوي على أكثر من سطر واحد، يلزم استخدام الأقواس المتعرجة {}، ويجب أن تكون عبارة الإرجاع صريحة:
const sum = (a, b) => { let result = a b; return result; };
وظائف السهم وهذا
أحد الفروق المهمة هو كيفية تصرف ذلك في وظائف السهم. على عكس الوظائف التقليدية، لا تربط وظائف السهم هذا — فهي ترث هذا من السياق المحيط بها.
const person = { name: "John", sayName: function() { setTimeout(() => { console.log(this.name); }, 1000); } }; person.sayName(); // "John"
في المثال أعلاه، ترث وظيفة السهم داخل setTimeout هذا من طريقة sayName، والتي تشير بشكل صحيح إلى كائن الشخص.
يسمح لنا التدمير باستخراج القيم من المصفوفات أو الكائنات وتخصيصها للمتغيرات بطريقة أكثر إيجازًا.
تدمير الكائنات:
const person = { name: "John", age: 30 }; const { name, age } = person; console.log(name); // "John" console.log(age); // 30
تدمير المصفوفة:
const fruits = ["Apple", "Banana", "Orange"]; const [first, second] = fruits; console.log(first); // "Apple" console.log(second); // "Banana"
يمكن استخدام العامل ... لتوسيع المصفوفات إلى عناصر فردية أو لجمع عناصر متعددة في مصفوفة.
الانتشار: يوسع المصفوفة إلى عناصر فردية.
const numbers = [1, 2, 3]; const newNumbers = [...numbers, 4, 5]; console.log(newNumbers); // [1, 2, 3, 4, 5]
Rest: يجمع وسائط متعددة في مصفوفة.
function sum(...args) { return args.reduce((acc, curr) => acc curr); } console.log(sum(1, 2, 3, 4)); // 10
تُستخدم الوعود للتعامل مع العمليات غير المتزامنة في JavaScript. يمثل الوعد قيمة قد تكون متاحة الآن أو في المستقبل أو لن تكون متاحة أبدًا.
مثال:
const myPromise = new Promise((resolve, reject) => { setTimeout(() => { resolve("Success!"); }, 1000); }); myPromise.then(result => { console.log(result); // "Success!" after 1 second });
في هذا المثال، يتم حل الوعد بعد ثانية واحدة، ويتعامل الأسلوبthen() مع القيمة التي تم حلها.
في ES6، يمكنك تعيين القيم الافتراضية لمعلمات الوظيفة. يكون هذا مفيدًا عندما لا يتم توفير معلمة أو تكون غير محددة.
مثال:
function greet(name = "Guest") { return `Hello, ${name}!`; } console.log(greet()); // "Hello, Guest!" console.log(greet("John")); // "Hello, John!"
تمت إضافة أساليب جديدة إلى السلاسل لتسهيل المهام الشائعة:
يتضمن (): التحقق مما إذا كانت السلسلة تحتوي على قيمة محددة.
let str = "Hello world!"; console.log(str.includes("world")); // true
startsWith(): يتحقق مما إذا كانت السلسلة تبدأ بقيمة محددة.
console.log(str.startsWith("Hello")); // true
endsWith(): يتحقق مما إذا كانت السلسلة تنتهي بقيمة محددة.
console.log(str.endsWith("!")); // true
قدم ES6 طرقًا جديدة للعمل مع المصفوفات:
find(): إرجاع العنصر الأول الذي يفي بالشرط.
const numbers = [5, 12, 8, 130, 44]; const found = numbers.find(num => num > 10); console.log(found); // 12
findIndex(): إرجاع فهرس العنصر الأول الذي يستوفي الشرط.
const index = numbers.findIndex(num => num > 10); console.log(index); // 1 (position of 12 in the array)
قدم ES6 فئات إلى JavaScript، وهي عبارة عن السكر النحوي فوق الميراث القائم على النموذج الأولي لجافا سكريبت. تسمح الفصول الدراسية ببرمجة موجهة للكائنات أنظف وأكثر قابلية للفهم.
مثال:
class Car { constructor(brand, year) { this.brand = brand; this.year = year; } displayInfo() { return `${this.brand} from ${this.year}`; } } const myCar = new Car("Toyota", 2020); console.log(myCar.displayInfo()); // "Toyota from 2020"
لقد قام ES6 بتحويل JavaScript، مما يجعله أكثر كفاءة وأسهل في الاستخدام. يؤدي تقديم وظائف السهم إلى تبسيط بناء جملة الوظيفة، في حين أن الميزات الجديدة مثل التدمير، والوعود، والفئات، وعامل الانتشار يسمح للمطورين بكتابة تعليمات برمجية أكثر وضوحًا وتعبيرًا. سواء كنت مبتدئًا أو مطورًا متقدمًا، فإن فهم ميزات ES6 هذه يعد أمرًا ضروريًا لكتابة JavaScript الحديثة.
من خلال إتقان هذه المفاهيم، ستكون مجهزًا بشكل أفضل للتعامل مع تحديات البرمجة الواقعية وإنشاء تطبيقات ويب فعالة وقابلة للتطوير.
متابعة مشروع Arrow Functions على GitHub
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3