---
# System prepended metadata

title: Special Values in Javascrit
tags: [undefined, javascript, NaN, 'null']

---

# Special Values in Javascrit

###### tags: `javascript` `NaN` `null` `undefined`

### undefined 


- Default value of uninitialized variables
- You shouldn't assign undefined as a value manually

```javascript
var myVar;
console.log(typeof myVar) //undefined
```

### null 

- Never assumed by default
- You can assign this is a value if you want to "reset"/"clear" a variable

Interestingly, null has a data type of object

```javascript
var myVar = null;
console.log(typeof myVar) //object
```

### NaN

- **NaN is not a type**
- Technically, it's of type number and can therefore be used in caculations
- It yields a new NaN and it's the result of invalid cavulations (eg, 3 * 'hi')

### How about empty?

- empty simply means empty string

```javascript
var myVar = "";
console.log(typeof myVar) //string
```

### Are they equal?

- It's different between === and ==

- Null and undefined mean "nothing" value
```javascript
console.log(null == undefined) // true
```

- Even null and undefined mean "nothing" similarly, the types between them are differnet
```javascript
console.log(null === undefined) // false
```

```javascript
console.log(null == undefined) // true
console.log("" == null); // false
console.log("" == undefined); // false
console.log("" === null); // false
console.log("" === undefined); // false
```


