# Closure
```
author: krm
created: 2023-10-12
status: alpha
```

Ange värdet på utrycket nedan.

# 1. 🎯 let x = "Hello World!"; function foo() {return x}; foo()

- "Hello World!" 

# 2. 🎯 {let x = 123; function foo() {return x}}; foo()

- 123

# 3. 🎯 {let x = 123; function foo() {return x}}; x

- Uncaught ReferenceError: x is not defined

# 4. 🎯 let x = 1;let y=2;{let x = 3; let z=4; function foo(z) {return x*y*z}}; foo(7)

- 42

# 🪧 Vi leker med funktioner

I uppgifterna nedan utgå från att de utförs efter varandra.

```js

let sum = 1;

function Adding(term=1) {
  sum += term;
  return sum;
}
```

## 5. 🎯 Adding(2)

- 3

## 6. 🎯 Adding(3)

- 6

## 7. 🎯 Adding()

- 7

## 8. 🎯 Adding();sum

- 8

#  9. 🤔 Förklara med egna ord vad som menas med "clousure"?.

# 10. 🤔 Att funktionerna blir deklarerade även utan för koldblocket "hoisting". Förlklara fördelarna med detta.
