Javascript: The interpretation of string comparison code

Viewed 72

How does JS interpreter this line: if ("foo"[0] === "f"){}? Two versions I could think of:

Version 1:

JavaScript creates a completely new string object which stores "f". This would require a lot more time than the second option, tho in my opinion this version looks more like JavaScript than the other.

Version 2:

Either JavaScript's lexer or parser converts "foo"[0] to "f". Because we are not talking about initializing or setting the value of a variable, we don't need to store the whole string, and we don't need to create a new string object. The interpreter just simply runs if ("f" === "f") {} .

Which of the 2 versions are the correct one? Is there another version? I'm also happy to read the solutions in other languages.

0 Answers
Related