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

هل حان الوقت لاستعمال ES6 من لغة جافاسكريبت؟

إسلام مصطفى

السؤال

Recommended Posts

  • 0

لست مضطراً لاستخدام جميع ميزات ES6 ، عملياً كل كود ES5 لا يزال يمكنك اعتباره كود ES6 صالح إلا إذا كنت تستخدم بعض أكواد ES6 المميزة ولكن لا تقلق بشأن ذلك
يمكن أن تمنع ES6 الكثير من الأخطاء وأن تجعل الكثير من الأشياء أسهل. لاحظ الكود التالي : 

function Counter() {
	this.items = {};
}
Counter.prototype.processItems = function processItems(items) {
	items.forEach(function(item) {
		this.items[item] = item in this.items ? 1 : this.items[item] + 1;
	}, this);
};
var c = new Counter();
c.processItems(['foo', 'bar', 'zap', 'bar', 'zap']);
var keys = Object.keys(c.items);
var item;
for (var i = 0; i < keys.length; i++) {
	item = c.items[keys[i]];
	console.log(keys[i] + ': ' + item);
}

من الجدير بالذكر أن كائن ال Counter هذا فقط يعمل مع السلاسل المحرفية ، وجعله يعمل مع أي شيء آخر سيجعله غير فعال للغاية.
هنا نفس الشيء ، ولكن بلغة ES6 : 

class Counter {
	constructor() {
		this.items = new Map();
	}
	processItems(items) {
		items.forEach(item => {
			const prev = this.items.get(item) || 0;
			this.items.set(item, prev + 1);
		});
	}
}
const c = new Counter();
c.processItems(['foo', 1, false, 1, false]);
for (let [item, count] of c.items) {
	console.log(`${item}: ${count}`);
}

نلاحظ في هذه الحالة أننا استخدمنا نفس الكمية من الأكواد ولكن الآن أصبح الكود أكثر نظافةً ووضوحاً وأقل كثافة وفعالية كما أنه يمكنك الاستغناء عن السلاسل المحرفية وبالتالي أصبح التنفيذ أسرع

تم التعديل في بواسطة ابراهيم محمد11
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

أجل بالطبع أنصح باستخدام ES6 فهي تجعل الأكواد أقصر و أنظف و تقدم العديد من المميزات. و لكن هناك مشكلة واحدة و هي أنها ليست مدعومة كليا من المتصفحات حتى وقتنا هذا لذلك يجب استخدام بعض الأدوات حتى تقوم بتحويل ES6 إلى ES5 مثل Babel. Js و webpack. Webpack عبارة عن bundler و يدعم babel. 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...