O texto primitivo é o dado que contém um texto sem ser objeto.

As strings são usadas para armazenar e manipular texto.

Uma sequência de JavaScript tem zero ou mais caracteres escritos entre aspas.

var x = "João José";

Você pode usar aspas simples ou duplas:

var nomeCarro1 = "Volvo XC60";  // Aspas duplas
var nomeCarro2 = 'Volvo XC60';  // Aspas simples

Você pode usar aspas dentro de uma string, desde que não correspondam às aspas ao redor da string:

var answer1 = "It's alright";
var answer2 = "Ele é chamado 'João";
var answer3 = 'Ele é chamado "João"';

Comprimento da String

Para encontrar o comprimento de uma sequência, use a propriedade length interna:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Caracter de Escape

Como as strings devem ser escritas entre aspas, o JavaScript não entenderá essa string:

var x = "We are o so-called "Vikings" from o north.";

A corda será cortada para "Nós somos os chamados".

A solução para evitar esse problema é usar o caractere de escape de barra invertida.

O \caractere de escape barra invertida ( ) transforma caracteres especiais em caracteres de sequência:

Código

Resultado

Descrição

\'

'

Aspas simples

\"

"

Aspas duplas

\\

\

Barra invertida

A sequência \"  insere aspas duplas em uma string:

var x = "Somos chamados \"Vikings\" do Norte.";

A sequência \'  insere uma única citação em uma sequência:

var x = 'It\'s alright.';

A sequência \\  insere uma barra invertida em uma sequência:

var x = "O caractere \\ é chamado de barra invertida.";

Seis outras seqüências de escape são válidas em JavaScript:

Código

Resultado

\b

Backspace

\f

Form Feed

\n

New Line

\r

Carriage Return

\t

Horizontal Tabulator

\v

Vertical Tabulator

Os 6 caracteres de escape acima foram projetados originalmente para controlar máquinas de escrever, teletipos e aparelhos de fax. Eles não fazem sentido em HTML.

Quebrando Linhas de Código Longo

Para melhor legibilidade, os programadores geralmente gostam de evitar linhas de código com mais de 80 caracteres.

Se uma instrução JavaScript não couber em uma linha, o melhor local para quebrá-la é após um operador:

document.getElementById("demo").innerHTML =
  "Hello Dolly!";

Você também pode dividir uma linha de código em uma sequência de texto com uma única barra invertida: 

document.getElementById("demo").innerHTML = "Hello \
Dolly!";

O método \ não é o método preferido. Pode não ter suporte universal.

Alguns navegadores não permitem espaços atrás da barra invertida única \.

Uma maneira mais segura de quebrar uma string é usar a adição de strings

document.getElementById("demo").innerHTML = "Hello " +
"Dolly!";

Você não pode dividir uma linha de código com uma barra invertida:

document.getElementById("demo").innerHTML = \
"Hello Dolly!";

Textos Podem Ser Objetos

Normalmente, as strings JavaScript são valores primitivos, criados a partir de literais:

var primeiroNome = "João";

Mas cadeias também podem ser definidas como objetos com a palavra new-chave : 

var primeiroNome = new String("João");
var x = "João";
var y = new String("João");
// typeof x will return string
// typeof y will return object

Não crie strings como objetos. Diminui a velocidade de execução.

A palavra-chave new complica o código. Isso pode produzir alguns resultados inesperados:     

Ao usar o operador ==, acomparação de strings com valores iguais retornam verdadeiro: 

var x = "João";        
var y = new String("João");
// (x == y) is true because x and y have equal values

Ao usar o operador ===, cadeias com valores iguais não são avaliadas como iguais porque o operador === exigem igualdade no tipo e no valor.

var x = "João";            
var y = new String("João");
// (x === y) is false because x and y have different types (string and object)

Ou pior ainda. Objetos não podem ser comparados:

var x = new String("João");            
var y = new String("João");
// (x == y) is false because x and y are different objects

var x = new String("João");            
var y = new String("João");
// (x === y) is false because x and y are different objects

Observe a diferença entre (x==y)e (x===y).

A comparação de dois objetos JavaScript sempre retornará false.

Teste-se com exercícios

Use a propriedade length para alertar o comprimento de txt.

var txt = "Olá, mundo!";
var x = [            ];
alert (x);