O que é um objeto String e como ele difere do primitivo String?

Nos módulos anteriores você estava acostumado a trabalhar com literais de strings assim:
const greeting = "Hello, World!";
Mas o JavaScript também possui objetos string. Tanto objetos string quanto primitivos string são usados para manipular texto mas funcionam de maneira diferente internamente. Um objeto string é criado usando a função construtora string, que envolve o valor primitivo em um objeto. Aqui está como você criaria um objeto string:
const greetingObject = new String("Hello, World!");

console.log(typeof greetingObject); // "object"
Quando usamos o operador typeof podemos ver que o resultado é do tipo object em vez do tipo string. Uma das coisas que você pode estar se perguntando é como usar propriedades como a propriedade .length em primitivas de string. Quando você usa a propriedade length em um primitivo string, o JavaScript envolve temporariamente o primitivo string em um objeto string para realizar a operação. É por isso que você pode usar a propriedade length e os diferentes métodos como repeat(), concat() e slice(). These types of methods and properties are referred to as instance methods, instance properties, and static methods. Você aprenderá em detalhes como isso funciona em módulos futuros. Uma diferença chave entre um objeto string e um primitivo string é como ele se relaciona com memória e desempenho. Primitivos de string geralmente são mais eficientes em memória e mais rápidos comparados a objetos de string. Embora você trabalhe principalmente com primitivas de string no seu código, ainda é útil entender como os objetos string funcionam.
Este módulo não possui perguntas. Marque como concluído.