## JavaScript

### Exercises

* Write a Promises implementation
* Implement the various functions provided by common tools like underscore/lodash
* Write a library for handling input autocompletion and list selection

### Readings

* [Front-end Developer Handbook 2017](https://frontendmasters.gitbooks.io/front-end-handbook-2017/content/recap.html)
* [es6 features](https://github.com/lukehoban/es6features)

### Resources

## JavaScript

### Exercises

* Write a Promises implementation
* Implement the various functions provided by common tools like underscore/lodash
* Write a library for handling input autocompletion and list selection

### To Read

* [Front-end Developer Handbook 2017](https://frontendmasters.gitbooks.io/front-end-handbook-2017/content/recap.html)
* [es6 features](https://github.com/lukehoban/es6features)

### Read

#### [JavaScript: Arrow Functions for Beginners](https://hackernoon.com/javascript-arrow-functions-for-beginners-926947fc0cdc)

```javascript
// Arrow functions look like:
(parameters) => { statements }
// Opening parens are optional when only have 1 parameter...
parameter => { statements }
//and written as () when have 0
() { statements }
// If returning an expression, remove the brackets
parameters => expression
// which is equivalent to:
function (params) {
  return expression;
}
```

Why use arrow functions?

* Shorter syntax
* `this` is lexically bound (keeps its meaning from its original context)


### Resources

Add notes for JS arrow functions post
Add notes for JS arrow functions post