Consider the following code snippet and determine the result.
Code snippet as a picture
Will we see any output? If yes, then what would it be?
To answer this question correctly, you need to understand the typecast rules in JS.
The arithmetic operations
-have the same priority, so the value of
xwill be calculated from left to right without any exceptions.
First, we concatenate the string
'2'with the number
3. The result is the string
Second, we try to subtract the boolean value
truefrom the string
'23'. To make this operation possible, both boolean and a string have to be cast to a number. Non-surprisingly
trueis turned to
1. Eventually, we do the subtraction and get the result, number
The last step is to add the string
'1'to the number
22. Applying the same concatenation that we did on the first step gives us the result - a string
There are no issues with the expression in line 1. The value of
xis a string
’221’, which will be successfully logged to the screen.