58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: ES6
 | ||
| localeTitle: ES6
 | ||
| ---
 | ||
| ## ES6
 | ||
| 
 | ||
| 第6版ECMAScript称为ES6。
 | ||
| 
 | ||
| 它也被称为ES2015。
 | ||
| 
 | ||
| 这些更改增加了许多语法糖,允许开发人员以面向对象的方式创建应用程序。
 | ||
| 
 | ||
| > ES5示例:
 | ||
| 
 | ||
| ```javascript
 | ||
| var User = function () { 
 | ||
|   function User(name) { 
 | ||
|     this._name = name; 
 | ||
|   } 
 | ||
|  
 | ||
|   User.prototype.getName = function getName(x) { 
 | ||
|     return 'Mr./Mrs. ' + this._name; 
 | ||
|   }; 
 | ||
|  
 | ||
|   return User; 
 | ||
|  }(); 
 | ||
| ```
 | ||
| 
 | ||
| > ES6示例:
 | ||
| 
 | ||
| ```javascript
 | ||
| class User { 
 | ||
|   constructor(name) { 
 | ||
|     this._name = name 
 | ||
|   } 
 | ||
|  
 | ||
|   getName() { 
 | ||
|     return `Mr./Mrs. ${this._name}` 
 | ||
|   } 
 | ||
|  } 
 | ||
| ```
 | ||
| 
 | ||
| 引入了许多新的语法功能,包括:
 | ||
| 
 | ||
| *   类,
 | ||
| *   模块,
 | ||
| *   模板,
 | ||
| *   for / of循环,
 | ||
| *   生成器表达式
 | ||
| *   箭头功能,
 | ||
| *   收藏,
 | ||
| *   承诺。
 | ||
| 
 | ||
| 如今,大多数功能都可以在所有流行的浏览器中使用。 [兼容性表](https://kangax.github.io/compat-table/es6/)包含有关所有现代浏览器的功能可用性的所有信息。
 | ||
| 
 | ||
| 经常出现新功能,这是继承者ES7的一部分。一种常见的方法是将现代JavaScript(ES6,ES7和其他实验方案)翻译成ES5。这确保了旧浏览器也可以执行代码。像[Babel](https://babeljs.io/)这样的工具可以将新的JavaScript转换为ES5。
 | ||
| 
 | ||
| 除了来自ECMAScript标准的语法糖之外,还有一些需要[Polyfill的功能](https://babeljs.io/docs/usage/polyfill) 。通常它们是必需的,因为整个类/方法实现被添加到标准中。 |