ES6+ notes

  • Async functions
  • Arrow functions
    const foo = (x, y) => { return x + y; };
  • Classes
  • const
    const foo = "foo";
  • Default parameters
    const foo = (x, y = 1) => { return x + y; };
  • filter
    [1, 2, 3, 4, 5].filter(n => n < 3); // [1, 2]
  • for-of loop
    for (let item of items) {console.log(item)}
  • import / export
    export default defaultExport;
    import defaultExport from "module-name";
    export function exportFunction(){...};
    import { exportFunction } from "module-name";
                
  • let
    let foo = "foo";
  • Promises
    const promise1 = new Promise(function(resolve, reject) {
      setTimeout(function() {
        resolve('foo');
      }, 300);
    });
    
    promise1.then(function(value) {
      console.log(value); // foo
    });
              
  • reduce
    const array1 = [1, 2, 3, 4];
    const reducer = (accumulator, currentValue) => {
      return accumulator + currentValue;
    }
    console.log(array1.reduce(reducer)); // 10
              
  • Set
    const set1 = new Set([1, 2, 3]);
    console.log(set1.has(1)); // true
    console.log(set1.has(2)); // true
    console.log(set1.has(3)); // true
    
    set1.add(4)
    console.log(set1.has(4)); // true
    
    set1.delete(4)
    console.log(set1.has(4)); // false
    console.log(set1.size); // 3
                
  • Spread
    function sum(x, y, z) {
      return x + y + z;
    }
    
    const numbers = [1, 2, 3];
    
    console.log(sum(...numbers)); // 6
              
  • Template literals (Template strings)
  • `string text`
    `string text line 1
     string text line 2`
    `string text ${expression} string text`