Primitives are also compared by value: two values are the same only if they have the same value. This sounds circular for numbers, booleans, null, and undefined: there is no other way that they could be compared. Again, however, it is not so obvious for strings. If two distinct string values are compared, JavaScript treats them as equal if, and only if, they have the same length and if the character at each index is the same.
I can't understand what the adjective circular is supposed to mean in this context. According to dictionaries, the word has basically two definitions: when something has a round shape and the other meaning is about a logical argument being circular. Neither one appears to be fitting for the context of this paragraph.