You're correct. It will first convert the left operand to a string, note however that the rules for converting between various data types in JavaScript are a lot more subtle than you might think.
true == "true" //=> true
true == "1" //=> true
"true" == "1" //=> false
The precise rules are fairly complicated*, but the important thing to remember here is that when a Boolean is converted directly to a string, this is the result:
true.toString() //=> "true"
false.toString() //=> "false"
So this is exactly the behavior you should expect, for example:
var obj = { "true": "a", "false": "b" };
true in obj //=> true
false in obj //=> true
1 in obj //=> false
* See Does it matter which equals operator (== vs ===) I use in JavaScript comparisons?