# Object
```
author: krm
created: 2023-09-26
status: alpha
```

Ange värdet på utrycket nedan. Blir det ett fel så skriv vilken typ av 
error det blir. Finns det fler utryck på samma rad är det värdet av det 
sista utrycket som ska anges. Observera att för objekt är ordningen på 
egenskperna inte definerat, det gör att några av frågorna nedan kan ha 
flera svar där ordningen som egenskaperna skrivs ut varierar.

# 1. 🎯 let o={a: 1, b: 2}; o["a"]

- 1

# 2. 🎯 let o={a: 1, b: 2}; typeof o

- object

# 3. 🎯 let o={a: 1, b: 2}; o

- { a: 1, b: 2 }

# 4. 🎯 Boolean({});

- true

# 5. 🎯 Number({});

- NaN

# 🪧 Vi leker med objekt

```js
let OO = {a:10,b:20,c:30,d:40};
let O = {a:1, o:OO, b:"boo", c:3, d:{I:{a:{b:{c:"d"}}}, II:2,III:3,"IV elefanter":4, "V myror":5}, e: 5}
```

## 6. 🎯 O["a"]

- 1

## 7. 🎯 O.a

- 1

## 8. 🎯 O.b + 0

- boo0

## 9. 🎯 O.d.II + O.c

- 5

## 10. 🎯 O.d["IV elefanter"] > O.d["V myror"]

- false

## 11. 🎯 O.d.I.a.b.c

- d

## 12. 🎯 O.d.I.a.b.c.d

- undefined 

## 13. 🎯 O.d.I.a.b.c.d.e

- Uncaught TypeError: O.d.I.a.b.c.d is undefined

## 14. 🎯 O.e = "5"; O.e + 5

- 55

## 15. 🎯 O.o.d

- 40

## 16. 🎯 Object.keys(OO)

-  [ "a", "b", "c", "d" ]

# 🪧 Vi leker mer med objekt

```js
let o = {a:1,b:2,c:3};
let oo = o;
oo.b = 22;
o.c = 33; 
```

## 17. 🎯 o.a

- 1

## 18. 🎯 o.b

- 22

## 19. 🎯 oo.c

- 33

# 20. 🎯 Object.assign({},{a:1,b:2})

- { a: 1, b: 2 }

# 21. 🎯 Object.assign({b:20,c:30},{a:1,b:2})

- { b: 2, c: 30, a: 1 }

# 22. 🎯 Object.assign({a:1}, {b:2,},{c:3})

- { a: 1, b: 2, c: 3 }

# 23. 🎯 Vad blir utskriften av koden nedan?

```js
let o = {a:11,b:22,c:33};
for(let key in o) {
   console.log(o[key]);
}
```

- 11\n22\n33\n


# 24. 🤔 Vad menas med en "deep copy" av ett objekt?


