# How can you tell what type a value is, in JavaScript?

> Learn how to tell what type a value is in JavaScript using the typeof operator, the values it returns, and why typeof null and arrays both give 'object'.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2020-06-06 | Topics: [JavaScript](https://flaviocopes.com/tags/js/) | Canonical: https://flaviocopes.com/javascript-value-type/

[JavaScript](https://flaviocopes.com/javascript/) has a few built-in types, including numbers, strings, booleans, objects.

Using the `typeof` operator we can check what is the type of a value assigned to a variable.

For example:

```js
typeof 'test'
```

> Note that it's not a function, it's an operator, so parentheses are not required.

Using it, we will get a string back, returning one of the following values:

- `'number'`
- `'string'`
- `'boolean'`
- `'undefined'`
- `'bigint'`
- `'symbol'`
- `'object'`
- `'function'`

Note that there is no `null` type, and

```js
typeof null
```

will return `'object'`.

Arrays will return `'object'` too:

```js
typeof [1, 2, 3] //'object'
```

Functions are a special kind of objects, as we can add properties and methods to functions:

```js
const talk = () => {}
talk.test = true
```

but they have their own value `'function'` if we use the `typeof` operator.
