var & let Keywords
Variables set with let keyword cannot be overwriten as with var
const Keyword
Has all the same features as let with the added bonus that they are read-only
Arrow Functions
Syntactic sugar to not have to write anonymous functions as in ES5
Parameters
In order to help create more flexible functions, ES6 introduces default, and rest parameters
Destructuring Assignment
Special syntax introduced in ES6
Literals
Template Literals: special type of string that makes creating complex strings easier / Object Literals: syntactic sugar
Concise Declarative Functions
Shorter is better
Class Syntax
The class syntax (is just syntax) replaces the constructor function creation
getters & setters
Getters & setters hide internal implementation details
Module & Import/Export
An easy way to share code among JavaScript files
Promises
Exactly what it sounds like - a promise to do something, usually asynchronously