JavaScript: ¿por qué no puedo agregar nuevos atributos a un objeto de "cadena"?

Experimenté con JavaScript y noté esta cosa extraña:

var s = "hello world!";
s.x = 5;
console.log(s.x); //undefined

Todos los tipos de variables en JavaScript se heredan del objeto. Por lo tanto, debería ser posible agregar nuevos atributos a cada objeto.

¿Entendí mal algo?

Respuestas a la pregunta(6)

Su respuesta a la pregunta