1. Arrow functions are really handy:
["the", "red", "fox"].map(word => console.log(word))
is much cleaner than ["the", "red", "fox"].map(function(word) {
console.log(word)
})
2. Imports, while more ambiguous than `require`, look quite nice: import React, { Component } from 'react';
import Block from './Block';
vs var React = require('react');
var Block = require('./Block');
3. Exports are cleaner and streamlined export default myFunction()
vs module.exports = myFunction()
So while ES6 is more ambiguous than ES5 and has a higher learning curve, I think it's much cleaner and looks more like a proper programming language. ES5 feels like a homegrown hacky language in comparison.