Angus Croll: ES6 Uncensored
Angus Croll (@angustweets) was speaking at Full Frontal about ES6, these are my notes from his talk.
As developers we should contribute to the standards and then celebrate them when they are out. ES6 due out 2014 and the fun police will tell you how not to write it - until then: go wild! You can write JavaScript in your own way, it's very flexible.
Switch two variables
[a, b] = [b, a]
Destructuring. No third var required.
Find the max in array
Math.max(...array);
Spread operator turns array into CSV.
Sum an array
Arrow function and rest operator. [Not sure what either of these are?]
Remove duplicates from an array
[...Set(array)]
Set is a new type. Also uses spread operator.
Fibonacci sequence
Can use destructuring or generators.
Factorial
We can use destructuring to replace the with()
operator.
Sum of squares
We have array conprehensions for (x of array)
.
Module pattern
We can use arrow functions to assign defaults.
We can use arrow functions and literal shorthand - in an object litteral the key is defaulted to the var name? [Didn't understand the explanation.]
Defaults
We can pass in defaults as an object arguments.
Negative array indexes
Can use negative array indexes to work from the end of an array.
Proxies allow us to stub out an operator. Proxies are possibly the hardest syntax in ES6.
Null safe property chains
I.E. Don't need to check for every property up the chain of sale.person.name.last
. We can use a proxy to create a recursive proxy chain to work through this.
Where can you use it?
Only by playing with something and making mistakes do we learn. Get a head start on the new stuff.
- Firefox is the best - still has a few niggles.
- Chrome - have to enable a flag but only has a subset.
- node --harmony
- traceur
- continuum
- es6-shim
kangax.github.io has a compatibility table.
@esdiscuss on twitter is a good place to follow what's going on without getting involved with the mailing list.