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) 。通常它们是必需的,因为整个类/方法实现被添加到标准中。
							 |