56 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: ES6 | ||
|  | localeTitle: ES6 | ||
|  | --- | ||
|  | ## ES6
 | ||
|  | 
 | ||
|  | تسمى النسخة السادسة من ECMAScript بـ ES6. | ||
|  | 
 | ||
|  | ومن المعروف أيضا باسم ES2015. | ||
|  | 
 | ||
|  | تضيف التغييرات الكثير من السكر النحوي الذي يسمح للمطورين بإنشاء تطبيقات بأسلوب موجه للكائنات. | ||
|  | 
 | ||
|  | > مثال ES5:
 | ||
|  | 
 | ||
|  |  `var User = function () {  | ||
|  |   function User(name) {  | ||
|  |     this._name = name;  | ||
|  |   }  | ||
|  |   | ||
|  |   User.prototype.getName = function getName(x) {  | ||
|  |     return 'Mr./Mrs. ' + this._name;  | ||
|  |   };  | ||
|  |   | ||
|  |   return User;  | ||
|  |  }();  | ||
|  | `  | ||
|  | 
 | ||
|  | > مثال ES6:
 | ||
|  | 
 | ||
|  |  ``class User {  | ||
|  |   constructor(name) {  | ||
|  |     this._name = name  | ||
|  |   }  | ||
|  |   | ||
|  |   getName() {  | ||
|  |     return `Mr./Mrs. ${this._name}`  | ||
|  |   }  | ||
|  |  }  | ||
|  | ``  | ||
|  | 
 | ||
|  | تم تقديم الكثير من ميزات بناء الجملة الجديدة بما في ذلك: | ||
|  | 
 | ||
|  | *   الطبقات، | ||
|  | *   وحدات، | ||
|  | *   النموذجيه، | ||
|  | *   ل / من الحلقات ، | ||
|  | *   تعبيرات المولدات ، | ||
|  | *   وظائف السهم ، | ||
|  | *   مجموعات، | ||
|  | *   وعود. | ||
|  | 
 | ||
|  | في الوقت الحاضر ، تتوفر معظم الميزات في جميع المتصفحات الشائعة. يحتوي [جدول التوافق](https://kangax.github.io/compat-table/es6/) على جميع المعلومات حول توفر الميزات لجميع المتصفحات الحديثة. | ||
|  | 
 | ||
|  | كثيرًا ما تصل الميزات الجديدة التي تشكل جزءًا من خليفة ES7. الطريقة الشائعة هي ترجمة JavaScript الحديثة (ES6 و ES7 وغيرها من المقترحات التجريبية) إلى ES5. يجعل هذا من المتصفحات القديمة أيضًا إمكانية تنفيذ الشفرة. هناك أدوات مثل [بابل](https://babeljs.io/) التي تحول جافا سكريبت الجديدة إلى ES5. | ||
|  | 
 | ||
|  | إلى جانب السكر النحوي القادم من معايير ECMAScript هناك ميزات تتطلب [Polyfill](https://babeljs.io/docs/usage/polyfill) . عادة ما تكون ضرورية لأن تطبيقات الطبقة / الطريقة كلها أضيفت إلى المعيار. |