Toptal's Quick and Practical JavaScript Cheat Sheet: ES6 and Beyond
Software engineers are always searching for the best tools and guides to help them be more productive and allow them to spend less time reading long technical specifications.
Today, Toptal is pleased to present a new resource to the community: the JavaScript Cheat Sheet - ES6 and Beyond. Toptal’s JavaScript Cheat Sheet is a quick, easily understandable reference guide. It is free to download and includes all the new and exciting features introduced with ES6 as well as the future experimental features from ES7.
Software engineers are always searching for the best tools and guides to help them be more productive and allow them to spend less time reading long technical specifications.
Today, Toptal is pleased to present a new resource to the community: the JavaScript Cheat Sheet - ES6 and Beyond. Toptal’s JavaScript Cheat Sheet is a quick, easily understandable reference guide. It is free to download and includes all the new and exciting features introduced with ES6 as well as the future experimental features from ES7.
Jesus is a co-founder of Netbeast.co. He has two years of experience as a full-stack developer as well as a year of experience as CTO.
Expertise
ECMAScript 6 (ES6) is the latest standard specification of JavaScript, the programming language of the Web. Since HTML5 and the birth of Node.js, the runtime that allows us to run JavaScript on the server or desktop, JavaScript has gained a unique momentum. There is a growing adoption rate among enterprises, embracing it into production, and thus its newest features were greatly awaited.
We created this cheat sheet as a list of ES6 features we use everyday. Trying to be comprehensive but concise at the same time, new API methods are left apart. For those who need them, make a quick search by yourself or try to explore the MDN documentation to catch the latest experimental APIs. However, some the most bleeding edge characteristics like async
and await
from the next specification draft (ES7) are included. This is because of most of us developers are going to use a transpiler like Babel anyway to get advantage of the newest JavaScript.
You can test out some of the mentioned tips by running the node REPL with this command:
node --use-strict $(node --v8-options | grep harm | awk '{print $1}' | xargs) #ES6
Or, use directly a babel-node to get the most of Javascript in your console.
Click Here To Download JavaScript ES6 Cheat Sheet
JavaScript (ES6 and Beyond) Cheat Sheet
Constants |
|
let vs var |
> const EULER = 2.7182818284 |
|
> var average = 5 |
Warning! If array or object, the reference is kept constant. If the constant is a reference to an object, you can still modify the content, but never change the variable. |
| |
> const CONSTANTS = [] |
|
Be aware of Temporal Dead Zones: |
|
> console.log(val) // -> 'undefined'
| |
|
Because it's equivalent to: | |
Binary, Octal and Hex Notation |
|
> var val |
> 0b1001011101 // 605 |
| |
|
Variables declared with "let/const" do not get hoisted: | |
New Types |
|
> console.log(val) |
Symbols, Maps, WeakMaps and Sets |
| |
Arrow Function |
|
New Scoped Functions |
> setTimeout(() => { |
|
> { |
Equivalent with Anonymous Function |
|
Equivalent with Immediately Invoked Function Expressions (IIFE) |
> setTimeout(function () { |
|
>
(function () { |
Object Notation Novelties |
|
String Interpolation, Thanks to Template Literals |
// Computed properties
// Object literals
// Same as } |
|
> const name = 'Tiger'
// We can preserve newlines… |
|
Default Params | |
|
> function howAreYou (answer = ‘ok’) { | |
Promises |
|
Classes, Inheritance, Setters, Getters |
new Promise((resolve, reject) => { |
|
class Rectangle extends Shape { |
Destructuring Arrays |
|
Destructuring Objects |
> let [a, b, c, d] = [1, 2, 3, 4]; |
|
> let luke = { occupation: 'jedi', |
Spread Operator |
|
...Go Destructuring Like a Boss |
// Turn arrays into comma separated |
|
> const [ cat, dog, ...fish ] = [ |
| ||
Or Do a Better Push |
|
...And Destructuring in the Future ⚠ ES7 |
> let arr = [1, 2, 3] |
|
{a, b, ...rest} = {a:1, b:2, c:3, d:4} |
Async ⚠ ES7 |
|
Await ⚠ ES7 |
async function schrodinger () { |
|
try { |
Export ⚠ ES7 |
|
Importing ⚠ ES7 |
export function sumTwo (a, b) { |
|
import React from ‘react’ |
Generators | ||
They return a objects that implement an iteration protocol. i.e. it has a next() method that returns { value: < some value>, done: <true or false> }. | ||
function* incRand (max) { // Asterisk defines this as a generator | ||
| ||
> var rng = incRand(2) // Returns a generator object |
Seville, Spain
Member since October 29, 2015
About the author
Jesus is a co-founder of Netbeast.co. He has two years of experience as a full-stack developer as well as a year of experience as CTO.