# Föreläsning 3

{% hint style="info" %}

### Nyckelord

funktion, anropa funktion, argument, returvärde, parameter, return-sats, räckvidd ("*scope*"), globala variabler, lokala variabler, "*closure*", funktionsuttryck, funktiondeklaration
{% endhint %}

## Föreläsningsmaterial <a href="#forelasningsmaterial" id="forelasningsmaterial"></a>

* [HTML-presentation](https://rawgit.com/1dv021/syllabus/master/presentationer/03/index.html)
* Exempel, [stringUtils.getMiddleString()](https://github.com/1dv021/examples/blob/5be1c0bdeb60108667a83cbe08c55ab89a44fc76/middleString/src/stringUtils.js#L8)

## Inspelningar

* [2019](https://youtu.be/nlZ9PX1zfbI), [2018](https://youtu.be/-JPLobl3-ts), [2017](https://www.youtube.com/watch?list=PLWl8eY9vSb6g68qMBI4g4Fh9IQN6b2tDW\&v=LDVFNtP1cXU), [2016](https://www.youtube.com/watch?list=PLWl8eY9vSb6grySsiX3gRp4juxN9DJiXz\&v=g2a5YyWYWc8), [2015](https://www.youtube.com/watch?list=PLWl8eY9vSb6iMIjVOm7r0gGRnlDercqGt\&v=W0d1SLEQlqM)

## Kurslitteratur

**Eloquent JavaScript, 3rd Edition**

* [3. Functions](http://eloquentjavascript.net/03_functions.html)
  * [Defining a function](http://eloquentjavascript.net/03_functions.html#h_tqLFw/oazr)
  * [Bindings and scopes](http://eloquentjavascript.net/03_functions.html#h_XqQR5FlX+8)
    * [Nested scope](http://eloquentjavascript.net/03_functions.html#i_c/Ms2Ed/N0)
  * [Functions as values](http://eloquentjavascript.net/03_functions.html#h_y6WGSsYfER)
  * [Declaration notation](http://eloquentjavascript.net/03_functions.html#h_H2WKvqbgVY)
  * [Arrow functions](http://eloquentjavascript.net/03_functions.html#h_/G0LSjQxoo)
  * [The call stack](http://eloquentjavascript.net/03_functions.html#h_D2Yui+mx6D)
  * [Optional arguments](http://eloquentjavascript.net/03_functions.html#h_1pGtRjrCUp)
  * [Closure](http://eloquentjavascript.net/03_functions.html#h_hOd+yVxaku)
  * [Recursion](http://eloquentjavascript.net/03_functions.html#h_jxl1p970Fy)
  * [Growing functions](http://eloquentjavascript.net/03_functions.html#h_eVDWIAuyBK)
  * [Functions and side effects](http://eloquentjavascript.net/03_functions.html#h_EdyBGBF6y/)

## Externa resurser

* [Crockford on JavaScript - Act III: Function the Ultimate](https://youtu.be/ya4UHuXNygM) (1 h 13 m) Crockfords föreläsning om funktioner är mycket bra men var inte rädd om du inte förstår allt då han går väldigt fort fram och pratar om många specialfall.
