# JavaScript - II
With some basic JavaScript principles we can now expand our skills out even further by exploring array methods like: `.forEach()`, `.map()`, `.reduce()`, and `.filter()`. We can also look at how closures have a large impact on how we write JavaScript.
## Assignment Description
* Fork/Clone this repository.
* Complete all the exercises as described inside each assignment file.
* Use `console.log()` statements to check to see if your code does what it is supposed to do.
* To test your `console` statements you can run `node /assignments/` and see what prints in your terminal. You can also use an online tool like `JSBin`, `REPL.it`, `JSFiddle`, or even your `Chrome developer console`.
* Once you finish the exercises in each file, commit your code, and push it to your fork.
### Callbacks
* In the [callbacks.js](assignments/callbacks.js) file you'll be receiving a lot of practice on how to use callbacks to pass around data.
* Write out each function using the `ES5` `function` keyword syntax.
* Remember that a callback function is simply a function that is being passed around to other functions.
* **Stretch Problem** After you're done with all of the functions, go ahead and re-factor all of them to use `ES6` `Arrow Functions`
### Function Conversion
You will see more and more arrow functions as you progress deeper into JavaScript. Use the [function-conversion.js](assignments/function-conversion.js) file as a helper challenge to showcase some of the differences between ES5 and ES6 syntax.
### Array Methods
Use `.forEach()`, `.map()`, `.filter()`, and `.reduce()` to loop over an array with 50 objects in it. The [array-methods.js](assignments/array-methods.js) file contains several challenges built around a fund rasising 5k fun run event.
* Read the instructions found within the file carefully to finish the challenges.
* The last challenge is to come up with 3 problems to solve and then build a solution for them using any of the array methods listed above.
* Share one of your favorite problem/solutions in your team meeting.
* Complete each challenge presented before moving on to closure.
### Closures
The [closure.js](assignments/closure.js) assignment showcases how variables can be used outside of functions to store state using closure.
* Complete each challenge.