DEV Community

Cover image for JavaScript Interview Question #40: What is the type of `undefined` in JS?
Coderslang: Become a Software Engineer
Coderslang: Become a Software Engineer

Posted on • Originally published at learn.coderslang.com

11 3

JavaScript Interview Question #40: What is the type of `undefined` in JS?

js-test-40

What's the output?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

In JavaScript, the typeof operator always returns a string.

So, even though typeof undefined evaluates to undefined, it’s a string and not the primitive undefined value.

The string ’undefined’ is not equal to the value undefined.


ANSWER: the message false will appear in the console.

Learn Full-Stack JavaScript

Top comments (5)

Collapse
 
rohithv07 profile image
Rohith V

So, typeof always returns a string and if we do a check like

typeof undefined === undefined
Enter fullscreen mode Exit fullscreen mode

it is actually checking whether the string undefined equal to the type undefined which is a false.
Instead if we do

typeof undefined === "undefined"
Enter fullscreen mode Exit fullscreen mode

we will get true as we are comparing with the string "undefined" and with the result which is a string we get from typeof undefined.

Collapse
 
coderslang profile image
Coderslang: Become a Software Engineer

Yes, you're absolutely right

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

If typeof(undefined) == undefined, that'd mean undefined has no type, so it makes sense for the string "undefined" to be returned instead :D

Collapse
 
coderslang profile image
Coderslang: Become a Software Engineer

Hold on, typeof null is coming right after you :)

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Hey, I never claimed JavaScript is a sane language overall :D

typescript

11 Tips That Make You a Better Typescript Programmer

1 Think in {Set}

Type is an everyday concept to programmers, but it’s surprisingly difficult to define it succinctly. I find it helpful to use Set as a conceptual model instead.

#2 Understand declared type and narrowed type

One extremely powerful typescript feature is automatic type narrowing based on control flow. This means a variable has two types associated with it at any specific point of code location: a declaration type and a narrowed type.

#3 Use discriminated union instead of optional fields

...

Read the whole post now!

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay