null + {0:1}[0] + [,[1],][1][0]
|
1 answer
First of all, you need to decide on what exactly develops:
- null
{0:1}[0]
->1
// access to the object field[,[1],][1][0]
->[1][0]
->1
As a result, we get
null + 1 + 1
Further we turn to the specification , and we get the following
ToNumber(null) + ToNumber(1) + ToNumber(1)
In the same specification, we see that ToNumber(null) == +0
As a result, we get
+0 + 1 + 1
That equals: 2
It is also worth paying attention to the fact that in this case not arrays are added, but the specific value of the object property, and the specific element of the array.
- Why in the third action from the array [, [1],] [1] [0] it turns out [1] [0]? - Nikita
- one
[,[1],][1][0] === ([,[1],][1])[0] === ([1])[0] === [1][0] === 1
- Arnial - oneThe second and third pairs of square brackets ([1] [0]) are not arrays, this is the sequential use of the index value retrieval operator (which is written in the form of square brackets with the index inside). - Arnial
- oneThe array in the third example is only
[,[1],]
which is equivalent to an array of 2 elements[ <empty_slot>, [1] ]
, where<empty_slot>
is an uninitialized field. - Arnial pm
|