ES6 brings a lot of new and interesting language features to JavaScript. ES6 has learned from many of JavaScript’s past mistakes and has crafted new language features that have clearer and easier to understand semantics. let and const are examples of this; they are block scoped declarations and thus not prone to the common errors caused by misunderstanding var scoping semantics. ES6 also includes