Нет, строковые примитивы не имеют методов. Как и в случае с числовыми примитивами, среда выполнения JavaScript будет преобразовывать их в полноценные объекты «String», когда для этого используются такие конструкции, как:
var space = "hello there".indexOf(" ");
В некоторых языках (ну, в частности, в Java, но я думаю, что этот термин является общеупотребительным) говорят, что язык «упаковывает» примитивы в свои обертки объектов, когда это уместно. С числами это немного сложнее из-за капризов грамматики токенов; ты не можешь просто сказать
var foo = 27.toLocaleString();
потому что "." не будет интерпретироваться так, как вам нужно; однако:
var foo = (27).toLocaleString();
отлично работает. Со строковыми примитивами & mdash; и логические, в этом отношении & mdash; грамматика не является двусмысленной, например:
var foo = true.toString();
будет работать.