58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: ES6 | ||
|  | localeTitle: ES6 | ||
|  | --- | ||
|  | ## ES6
 | ||
|  | 
 | ||
|  | A 6ª edição do ECMAScript é chamada ES6. | ||
|  | 
 | ||
|  | Também é conhecido como ES2015. | ||
|  | 
 | ||
|  | As mudanças adicionam muito açúcar sintático que permite aos desenvolvedores criar aplicativos em um estilo orientado a objetos. | ||
|  | 
 | ||
|  | > Exemplo ES5:
 | ||
|  | 
 | ||
|  | ```javascript | ||
|  | var User = function () {  | ||
|  |   function User(name) {  | ||
|  |     this._name = name;  | ||
|  |   }  | ||
|  |   | ||
|  |   User.prototype.getName = function getName(x) {  | ||
|  |     return 'Mr./Mrs. ' + this._name;  | ||
|  |   };  | ||
|  |   | ||
|  |   return User;  | ||
|  |  }();  | ||
|  | ``` | ||
|  | 
 | ||
|  | > Exemplo ES6:
 | ||
|  | 
 | ||
|  | ```javascript | ||
|  | class User {  | ||
|  |   constructor(name) {  | ||
|  |     this._name = name  | ||
|  |   }  | ||
|  |   | ||
|  |   getName() {  | ||
|  |     return `Mr./Mrs. ${this._name}`  | ||
|  |   }  | ||
|  |  }  | ||
|  | ``` | ||
|  | 
 | ||
|  | Muitos novos recursos de sintaxe foram introduzidos, incluindo: | ||
|  | 
 | ||
|  | *   classes, | ||
|  | *   módulos, | ||
|  | *   templating | ||
|  | *   para / de loops, | ||
|  | *   expressões geradoras, | ||
|  | *   funções de seta, | ||
|  | *   coleções, | ||
|  | *   promessas. | ||
|  | 
 | ||
|  | Atualmente, a maioria dos recursos está disponível em todos os navegadores populares. A [tabela de compatibilidade](https://kangax.github.io/compat-table/es6/) contém todas as informações sobre disponibilidade de recursos de todos os navegadores modernos. | ||
|  | 
 | ||
|  | Freqüentemente novos recursos chegam que fazem parte do sucessor ES7. Uma maneira comum é traduzir o JavaScript moderno (ES6, ES7 e outras propostas experimentais) para o ES5. Isso garante que também navegadores antigos possam executar o código. Existem ferramentas como o [Babel](https://babeljs.io/) que transforma o novo JavaScript em ES5. | ||
|  | 
 | ||
|  | Além do açúcar sintático proveniente dos padrões ECMAScript, existem recursos que requerem um [Polyfill](https://babeljs.io/docs/usage/polyfill) . Geralmente eles são necessários porque implementações de classes / métodos inteiras foram adicionadas ao padrão. |