es6

learn ES6 from below

github lernharmony.org

http://learnharmony.org/#lessons/arrow-functions

var values = [1, 2, 3, 4, 5, 6];

var even = values.filter(x => x % 2 === 0);
var evenSquares = even.map(x => x * x);

console.log(even, evenSquares);

write without ES6

var even2 = (function(){
  var hoge = values, fuga= [];
  for(var i in hoge) {
    if(hoge[i] % 2 === 0) fuga.push(hoge[i]);
  }
  return fuga;
})();
console.log(even2);

var evenSquares2 = (function(){
  var hoge = even2, fuga = [];
  for(var i in hoge) {
    fuga.push(hoge[i] * hoge[i]);
  }
  return fuga;  
})();
console.log(evenSquares2);

http://learnharmony.org/#lessons/destructuring

var person = {
    first: 'Marsellus',
    last: 'Wallace'
};


let {first, last} = person;
console.log(first, last); // console: Marsellus wallace

upon code is same as below

var first = person.first;
var last = person.last;
console.log(first, last); // console: Marsellus wallece

you can use different names

let {first: fn, last: ln} = person;
console.log(fn, ln); // console: Marsellus wallece


function getResult() {
    return {
        result: 1234,
        error: null
    };
}
let {result, error} = getResult();
console.log(result, error); // 1234 null

it looks strange, but run

function doHTTP({host, port, path}) {
    console.log(host, port, path);
}
doHTTP({
    host: 'learnharmony.org',
    port: 80,
    path: '/'
});


let person = {
    first: 'Marsellus',
    last: 'Wallace',
    spouse: {
        first: 'Mia',
        last: 'Wallace'
    }
};
let {first: husband, last, spouse: { first: wife } } = person;
console.log(wife, husband, last); // console: Mia Marsellus Wallace

http://learnharmony.org/#lessons/property-shorthand

function makeParent(first, last) {
    return {first, last, isParent: true};
}

console.log(makeParent('Darth', 'Vader'));

object sohrt hand makes me confused, {first, last, isParent: true} just means {first: first, last, last, isParent: true}

http://learnharmony.org/#lessons/method-shorthand

var chopper = {
    owner: 'Zed',
  getOwner() { return this.owner; }
};

console.log("Who's chopper is this?");
console.log("It's " + chopper.getOwner() + "'s" );

you can use shorthand like this, getOwner: function() { return this.owner; } → getOwner() { return this.owner; }


Links

Learn ES6 Hello, ES6 Mozilla

es6-features

ECMAScript 2015 特集1000ch 1000ch