Home > Blockchain >  Why does typeof operator shows different output without parenthesis?
Why does typeof operator shows different output without parenthesis?

Time:07-27

Consider the following code:

console.log(typeof ('6'/'2')) // => "number"

Now if I remove the parenthesis after typeof

console.log(typeof '6' / '2') // => NaN

which shows a different output. I'm wondering how JavaScript engine is working here.

CodePudding user response:

typeof '6' returns 'string'.

When you remove the parenthesis, the condition becomes 'string' / '2', which is NaN.

If you keep the parenthesis, the number division is done first, then typeof is called on the number.

CodePudding user response:

Because the code in parentheses executes first, So in the first statement will output 2, and the typeof 2, is number

But in the second statement, it will get typeof '6' first, which equal to string, then will do a dividing operation, which will equal to NaN

CodePudding user response:

typeof is an unary operator.

A unary operation is an operation with only one operand.

typeof '6' is processing the string '6' and then divided by '2' which results in NaN ('string' / '6'). While ('6'/'2') is calculated and casted to a number.

  • Related