3

When I execute below code , it prints "undefined" two times. I was expecting that it would raise error since variable is not defined and also there is use strict' statement in the top.

'use strict';
var a;

console.log(typeof a);
console.log(typeof b);

Can anyone explain why it is not raising an error ?

5

3 Answers 3

2

In fact in JavaScript undefined means that the variable isn't yet defined, so basically :

  • typeof a returns undefined because the variable a was only declared but not initialized yet (there's no value assigned to it).

  • And typeof b returns undefined because the variable b is not yet declared, so isn't defined.

And if there's no value assigned to a variable, it gets the type undefined because as type can't be determined.

So if you check the MDN typeof specification you will see that :

The typeof operator returns a string indicating the type of the unevaluated operand, and if you see types table you can see that undefined is a primitive type and one of the possible return values of typeof.

Examples:

And you can see in the Examples section, the undefined return:

// Undefined

typeof undefined === 'undefined';

typeof declaredButUndefinedVariable === 'undefined';

typeof undeclaredVariable === 'undefined';

Note:

And as stated in comments this is only related to JavaScript syntax and doesn't have anything to do with nodejs.

Sign up to request clarification or add additional context in comments.

Comments

-1

You don't use a function from "a", nor do you use any functions wich excepts a parameter, wich isn't undefined. Typeof only checks for the memory location of the variable.

Comments

-1

undefined is a primitive data type,

and that's one of the possible options the typeof operator can return,

the other options it can return are:

  • boolean
  • number
  • string
  • function
  • object
  • symbol

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.