5 Quizz explained in Javascript #1
Tags: javascript, webdev, codenewbie
Published: 2021-10-07 14:58:21

Welcome to the first javascript quizz!

You can answer to the question and check the response with the explication!

Good luck!

### 1 

```javascript
const myself = {
  name: 'code__oz',
  skills: ['js', 'ts', 'vuejs', 'nodejs'],
  getName() {
    return this.name
  },
  getMySkills: () => this.skills,
}

console.log(myself.getName())
console.log(myself.getMySkills())
```
What is the output? 👇

- A) `code__oz` and `['js', 'ts', 'vuejs', 'nodejs']`
- B) `undefined` and `undefined`
- C) `code__oz` and `undefined`
- D) `undefined` and `['js', 'ts', 'vuejs', 'nodejs']`

.
..
...
....
.....
......
.......
.......

**C** → We have `undefined` value since we are using `arrow function` and `this` in the same context, so the `this` keyword refers to its current **surrounding scope**, unlike regular functions! In a browser context, this refer to window object!

### 2

```javascript
let toto = { message: 'Hello' }
let tutu

tutu = toto
toto.message = 'Bye'
console.log(tutu.message)
```
What is the output? 👇

- A) `undefined`
- B) `Bye`
- C) `Hello`
- D) `ReferenceError`

.
..
...
....
.....
......
.......
.......

**B** → In JavaScript, all objects **interact** by **reference** when setting them equal to each other. So in this example `toto` and `tutu` **share the same reference** so if you change value from one, you will change the **shared reference** and you will `indirectly` change the value of the other variable.

### 3

```javascript
let number = 0
console.log(number++)
console.log(++number)
console.log(number)
```

What is the output? 👇

- A) `1 1 2`
- B) `1 2 2`
- C) `0 1 2`
- D) `0 2 2`

.
..
...
....
.....
......
.......
.......


**D** -> The **postfix** unary operator `++`:

1. Returns the value (this returns `0`)
2. Increments the value (number is now `1`)

The **prefix** unary operator `++`:

1. Increments the value (number is now `2`)
2. Returns the value (this returns `2`)

This returns `0 2 2`.

### 4

```javascript
function sum(a, b) {
  return a + b
}

sum(2, '5')
```

What is the output? 👇

- A) `TypeError`
- B) `NaN`
- C) `"25"`
- D) `7`

.
..
...
....
.....
......
.......
.......

**C** → JavaScript **converts** the number `2` into a `string`. It's because during the addition of a `numeric type (2)` and a `string type ('5')`, the number is `treated like a string` ! So we have '2' + '5' → '25'

### 5

```javascript
setInterval(() => console.log('Hey !'), 5000)
```

What does the `setInterval` method return in the browser? 👇

- A) a `unique id`
- B) the `amount of milliseconds specified`
- C) the `passed function`
- D) `undefined`

What is the output? 👇


.
..
...
....
.....
......
.......
.......

**A** -> It returns a `unique id`. This id can be used to clear that interval with the `clearInterval() function`.



Tell me your score in comment! 👨‍🏫

---

I hope you like this reading!

🎁 You can get my new book `Underrated skills in javascript, make the difference` for FREE if you follow me on [Twitter](https://twitter.com/code__oz) and MP me 😁

Or get it [HERE](https://codeoz.gumroad.com/l/RXLYp)

🎁 [MY NEWSLETTER](https://www.getrevue.co/profile/code__oz)

☕️ You can [SUPPORT MY WORKS](https://www.buymeacoffee.com/CodeoZ) 🙏

🏃‍♂️ You can follow me on 👇

🕊 Twitter : [https://twitter.com/code__oz](https://twitter.com/code__oz)

👨‍💻 Github: https://github.com/Code-Oz

And you can mark 🔖 this article!