• 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: June 8th, 2023

help-circle

  • The line breaks haven’t worked, here’s it formatted correctly:

    Explanation: it’s mostly due to how js does type conversion.

    For the Ls, it’s:

    • [] is an empty array
    • ![] is treated as false
    • combining a boolean with the empty array returns “false” as a string (so true + [] = “true”, false + [] = “false”)
    • ! + [] is treated as true
    • ! + [] + ! + [] is treated as 2 since true + true = 1 + 1 = 2
    • so you have “false”[2], which is l

    for the o it’s:

    • [] is an empty array
    • [] + {} returns “[object Object]” as a string ({} + [] returns 0)
    • ![] is false
    • !![] is true
    • +!![] casts it to an integer
    • so that part is “[object Object]”[1], which returns “o”-