ES6

var me = this;
service.getData()
    .then(function (data) {
        me.data = data;
    });

Arrow functions

service.getData()
    .then(data => {
        this.data = data;
    });
function MyClass() {
    MySuperClass.call(this);
}
MyClass.prototype = Object.create(MySuperClass.prototype);
MyClass.prototype.doStuff = function () {
    MySuperClass.prototype.doStuff.call(this);
}
MyClass.doStaticStuff = function () { ... }

Classes

class MyClass extends MySuperClass {
    constructor() {
        super();
    }
    doStuff() {
        super.doStuff();
    }
    static doStaticStuff() { ... }
}
function doStuff(name) {
    var a = 1;
    var b = 2;
    var data = {
        a: a,
        b: b,
    };

    data[name] = 'Demo';
    return data;
}

Objects

function doStuff(name) {
    var a = 1;
    var b = 2;
    return {
        a,
        b,
        [name]: 'Demo'
    };
}
  
function helloWorld(name) {
    return 'Hello ' + name + '!';
}

Template strings

function helloWorld(name) {
    return `Hello ${name}!`;
}
var result = doStuff();
var a = result[0];
var b = result[2];

Destructuring assignment

var [a, , b] = doStuff();
var result = doStuff();
var a = result.a;
var b = result.b;
var {a, b} = doStuff();
function helloWorld(name) {
    return 'Hello ' + (name || 'world') + '!';
}

function doStuff(a, b) {
    var cs = Array.prototype.slice.call(arguments, 2);
}

Function parameters

function helloWorld(name = 'world') {
    return `Hello ${name}!`;
}

function doStuff(a, b, ...cs) {

}
var data;
if (demo) {
    data = calculateStuff();
    return data;
} else {
    data = calculateOtherStuff();
    return data;
}

Proper variable scoping

if (demo) {
    let data = calculateStuff();
    return data;
} else {
    let data = calculateOtherStuff();
    return data;
}
var _ = require('lodash');
var DoStuffService = require('./stuff/DoStuffService');

module.exports = {
    demo: ...,
    demo2: ...
};

Modules

import _ from 'lodash';
import DoStuffService from './stuff/DoStuffService';

export var demo1 = ...;

export var demo2 = ...;
import {demo1, demo2} from './demo';


export default class Demo3 {
    ...
}
var demo1 = {};
var demo2 = {};

var map = {};
map[demo1] = 1;
map[demo2] = 2;

console.log(map[demo1]); // 2

Real maps/sets

var demo1 = {};
var demo2 = {};

var map = new Map();
map.set(demo1, 1);
map.set(demo2, 2);

console.log(map.get(demo1)); // 1
import React from "react";
import md5 from "md5";

export default class Gravatar extends React.Component {
    getUrl() {
        var hash = md5.digest_s(this.props.email.toLocaleLowerCase());
        var size = Math.ceil(this.props.size * (window.devicePixelRatio || 1));
        return `https://secure.gravatar.com/avatar/${hash}?d=mm&s=${size}`;
    }

    render() {
        return (
            <img src={this.getUrl()}/>
        );
    }
}
function(module, exports, __webpack_require__) {
  var React = _interopRequire(__webpack_require__(1));
  var md5 = _interopRequire(__webpack_require__(81));
  var Gravatar = (function (_React$Component) {
    function Gravatar() {
      _classCallCheck(this, Gravatar);

      if (_React$Component != null) {
        _React$Component.apply(this, arguments);
      }
    }

    _inherits(Gravatar, _React$Component);

    _prototypeProperties(Gravatar, null, {
      getUrl: {
        value: function getUrl() {
          var hash = md5.digest_s(this.props.email.toLocaleLowerCase());
          var size = Math.ceil(this.props.size * (window.devicePixelRatio || 1));
          return "https://secure.gravatar.com/avatar/" + hash + "?d=mm&s=" + size;
        },
        writable: true,
        configurable: true
      },
      render: {
        value: function render() {
          return React.createElement("img", { src: this.getUrl() });
        },
        writable: true,
        configurable: true
      }
    });

    return Gravatar;
  })(React.Component);

  module.exports = Gravatar;
}

ES6

By Bo Gotthardt