Strings Javascript

Los strings Javascript son usados para almacenar y manipular texto. Una cadena JavaScript tiene cero o más caracteres escritos entre comillas.

Ejm

var x = "John Doe";

Puedes usar comillas simples o dobles.

Ejm

var carName1 = "Volvo XC60";  // Double quotes
var carName2 = 'Volvo XC60';  // Single quotes

Puedes usar comillas dentro de una cadena, siempre que no coincidan con las comillas que rodean la cadena.

Ejm

var answer1 = "It's alright";
var answer2 = "He is called 'Johnny'";
var answer3 = 'He is called "Johnny"';

Tamaño del string (texto)

Para encontrar la longitud de una cadena, use la propiedad lengt.

Ejm

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

Carácter de escape

Debido a que las cadenas deben escribirse entre comillas, JavaScript malinterpretará esta cadena.

Ejm

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

La cadena se cortará a “We are the..”. La solución para evitar este problema es utilizar el carácter de escape de barra diagonal inversa. El carácter de escape de barra diagonal inversa (\) convierte caracteres especiales en caracteres de cadena:

Code Result Description
\’ Single quote
\” Double quote
\\ \ Backslash

La secuencia \” inserta una comilla doble en una cadena.

Ejm

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

La secuencia \’ inserta una comilla simple en una cadena.

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

La secuencia \\ inserta una barra invertida en una cadena.

Ejm

var x = "The character \\ is called backslash.";

Otras seis secuencias de escape son válidas en JavaScript.

Code Result
\b Retroceso
\f Feed de formulario
\n Nueva líne
\r Retorno de carro
\t Tabulador horizontal
\v Tabulador vertical

Los 6 caracteres de escape anteriores se diseñaron originalmente para controlar máquinas de escribir, teletipos y máquinas de fax. No tienen ningún sentido en HTML.

Romper largas líneas de código

Para una mejor legibilidad, los programadores suelen evitar las líneas de código de más de 80 caracteres.

Si una declaración JavaScript no cabe en una línea, el mejor lugar para romperla es después de un operador.

Ejm

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

También puede dividir una línea de código dentro de una cadena de texto con una barra invertida simple.

Ejm

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

El método \ no es el método preferido. Puede que no tenga soporte universal. Algunos navegadores no permiten espacios detrás del carácter \.

Una forma más segura de dividir una cadena es utilizar la suma de cadenas.

Ejm

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

No puedes dividir una línea de código con una barra diagonal inversa.

Ejm

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

Los strings también pueden ser objetos

Normalmente, las cadenas JavaScript son valores primitivos, creados a partir de literales.

Ejm

var firstName = "John";

Pero las cadenas también se pueden definir como objetos con la palabra clave new.

Ejm

var firstName = new String("John");

Ejm

var x = "John";
var y = new StringCuando se usa el operador ==, las cadenas iguales son iguales:John");

// typeof x will return string
// typeof y will return object

No crees cadenas como objetos. Disminuye la velocidad de ejecución. La palabra clave new complica el código. Esto puede producir algunos resultados inesperados.

Cuando se usa el operador ==, las cadenas iguales son iguales.

Ejm

var x = "John";             
var y = new String("John");

// (x == y) is true because x and y have equal values

Cuando se usa el operador ===, las cadenas iguales no son iguales, porque el operador === espera igualdad tanto en tipo como en valor.

Ejm

var x = "John";             
var y = new String("John");

// (x === y) is false because x and y have different types (string and object)

O incluso peor. Los objetos no se pueden comparar.

Ejm

var x = new String("John");             
var y = new String("John");

// (x == y) is false because x and y are different objects

Ten en cuenta la diferencia entre (x == y) y (x === y). Comparar dos objetos JavaScript siempre devolverá falso.