
Un objeto String en JavaScript es un constructor de cadenas o una matriz de caracteres.
Estructura String JavaScript
Los valores brutos de las cadenas pueden tener la siguiente forma:
'string text' "string text" "中文 español deutsch English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ் עברית"
Las cadenas se pueden crear utilizando el objeto global String
directamente:
String(thing)
thing
Cualquier valor que queramos convertir en una cadena.
A partir del estándar ECMAScript 2015, es posible crear los llamados literales de plantilla :
`hello world` `hello! world!` `hello ${who}` escape `<a>${who}</a>`
Además de los caracteres normales que aparecen, se pueden incluir caracteres especiales pasándolos de contrabando, como se muestra en la siguiente tabla:
Código | Resultado |
---|---|
\0 | Carácter nulo |
\' | Comillas simples |
\" | Comillas dobles |
\\ | Barra inclinada invertida |
\n | Tipo de letra de nueva línea |
\r | Retorno de carro |
\v | Espacio de pestaña vertical |
\t | Espacio de pestaña (pestaña) |
\b | Retroceso |
\f | Ir al tipo de letra de la nueva página (avance de formulario) |
\uXXXX | Formato de punto de código Unicode |
\u{X} ... \u{XXXXXX} | Formato de punto de código Unicode |
\xXX | Tipografía latina |
A diferencia de otros lenguajes de programación, JavaScript no distingue entre comillas simples y dobles. Por lo tanto, los caracteres de escape anteriores funcionarán independientemente del tipo de comillas que los rodeen.
A veces, el código contendrá algunas cadenas muy largas y, en lugar de tener una línea larga o depender del ajuste de línea en el editor, podemos dividir esas cadenas en varias líneas de código sin afectar el contenido de las cadenas en sí. Hay dos formas de Haz eso.
Podemos usar el operador + para sumar las cadenas de la siguiente manera:
let longString = "Esta es una cadena muy larga que necesita" + "para ajustarse a varias líneas porque" + "de lo contrario mi código es ilegible." ;
También puede usar la barra invertida \
al final de cada línea para indicar que la cadena de texto continuará en la siguiente línea. Pero asegúrese de que no haya espacios ni ningún otro carácter después de la barra invertida (excepto el carácter de nueva línea), o no funcionará. A continuación, se muestra un ejemplo de este método:
let longString = "Esta es una cadena muy larga que necesita \ encajar en varias líneas porque \ de lo contrario mi código es ilegible." ;
Los dos ejemplos anteriores producirán la misma cadena.
Características generales
Las cadenas son útiles para almacenar datos que representan voz de texto. Las operaciones más comúnmente utilizadas en cadenas son verificar su longitud (a través de la propiedad length
), sumar +=+
cadenas usando los operandos, y verificar la existencia o ubicación de subcadenas usando la función indexOf()
, o extraer esas subcadenas usando la función substring()
.
Hay dos formas de acceder a los caracteres de una cadena. La primera es utilizar la función charAt()
:
return 'cat'.charAt(1); // "a"
Otro método que se ha agregado al estándar ECMAScript 5.1 es tratar una cadena como un objeto similar a una matriz, donde los caracteres están asociados con un índice numérico:
return 'cat'[1]; // "a"
Cuando se accede a caracteres usando corchetes, intentar omitir o asignar un valor a esos atributos no funcionará. Estas propiedades no se podrán escribir ni configurar (consulte la página de funciones Object.defineProperty()
para obtener más información).
Los desarrolladores de funciones lo utilizan strcmp()
para comparar cadenas. En JavaScript, puede utilizar los operadores mayor que y menor que :
var a = 'a'; var b = 'b'; if (a < b) { // true console.log(a + ' is less than ' + b); } else if (a > b) { console.log(a + ' is greater than ' + b); } else { console.log(a + ' and ' + b + ' are equal.'); }
Se puede obtener un resultado similar al anterior utilizando la función localeCompare()
proporcionada en la copia del objeto String
.
Tenga en cuenta que JavaScript diferencia entre objetos String
y cadenas sin formato (lo mismo se aplica a los objetos Boolean
y Number
).
Las cadenas definidas por comillas simples o dobles y las cadenas devueltas desde la llamada a la función String
sin usar una palabra reservada new
(es decir, no un constructor) son cadenas primitivas, y JavaScript convierte estos valores primitivos en objetos String
automáticamente, lo que permite el uso de funciones String dependientes para la objetarlos.
Cuando se usa una función (o se intenta acceder a una propiedad) en una cadena sin formato, JavaScript envuelve la cadena sin procesar en un objeto y luego llama a la función (o propiedad) respectiva:
var s_prim = 'foo'; var s_obj = new String(s_prim); console.log(typeof s_prim); // "string" console.log(typeof s_obj); // "object"
Tenga en cuenta que los objetos String en javascript y las cadenas sin procesar dan resultados diferentes cuando se utilizan con una función eval()
. La cadena sin procesar que se pase a la función se tratará eval
como código fuente. Mientras que los objetos se tratan String
como otros objetos, el objeto se devolverá. El siguiente ejemplo lo ilustra:
var s1 = '2 + 2' ; // crea una cadena sin formato var s2 = new String( '2 + 2' ); // Crea un objeto de console.log(eval(s1)); // console.log(eval(s2)); // Cadena 2 + 2
Por estas razones, es posible que el código no funcione cuando encuentra objetos String
en lugar de cadenas sin formato, pero a los desarrolladores no les importan estas diferencias. Podemos convertir un objeto String
a su cadena equivalente en bruto usando la función valueOf()
:
console.log(eval(s2.valueOf())); // el numero 4
Propiedades constructora String
String.prototype
Esta propiedad permite agregar propiedades que están disponibles para todos los objetos cuyo tipo es String
.
Funciones constructivista String
String.fromCharCode()
Cree una cadena de texto utilizando una serie de valores Unicode.
String.fromCodePoint()
Cree una cadena de texto utilizando una serie de puntos de código.
String.raw()
Crea una cadena de texto a partir de una plantilla sin formato.
Características prototipo de objeto
Las versiones construidas de un constructor String
heredan funciones y propiedades de un objeto String.prototype
. Al igual que con todos los constructores, puede realizar cambios en un objeto prototype
en el constructor para que esos cambios se reflejen en todas las instancias del objeto String
.
String.prototype.constructor
Especifica la función que creará el prototipo del objeto String
. Consulte la página de funciones Object.prototype.constructor
para obtener más detalles.
String.prototype.length
Devuelve la longitud de la cadena de texto.
Principales funciones
String.prototype.charAt()
Devuelve el carácter en el índice especificado.
String.prototype.charCodeAt()
Devuelve el carácter en el índice especificado.
String.prototype.codePointAt()
Devuelve un entero positivo que representa el símbolo Unicode en la posición especificada.
String.prototype.concat()
Fusiona el texto existente en dos cadenas de texto y devuelve una nueva cadena de texto.
String.prototype.includes()
Averiguar si una cadena contiene otra cadena.
String.prototype.endsWith()
Averiguar si una cadena termina con otros caracteres de cadena.
String.prototype.indexOf()
Devuelve el índice dentro de un objeto String
que llama a la función y que es la posición de la primera coincidencia del valor especificado para esa función, o -1 si no se encuentra.
String.prototype.lastIndexOf()
Devuelve el índice dentro de un objeto String
que llama a la función y que es otra posición que coincide con el valor especificado para esa función, o -1 si no se encuentra.
String.prototype.localeCompare()
Devuelve un número que indica si la cadena de texto a la que se hace referencia está antes, después o con la cadena dada en un orden específico.
String.prototype.match()
Haga coincidir una expresión regular con una cadena.
String.prototype.normalize()
Devuelve el formulario de normalización Unicode para la cadena de texto respectiva.
String.prototype.padEnd()
Complete la cadena actual al final agregando la cadena dada para crear una nueva cadena de cierta longitud.
String.prototype.padStart()
Rellene la cadena actual desde el principio agregando la cadena dada para crear una nueva cadena de cierta longitud.
String.prototype.repeat()
Devuelve una cadena que contiene una repetición de una cadena durante un número específico de veces.
String.prototype.replace()
Busca una coincidencia entre una expresión regular y una cadena y coloca una subcadena en lugar de la cadena correspondiente.
String.prototype.search()
Encuentra una coincidencia para la expresión regular en la cadena dada.
String.prototype.slice()
Extraiga una sección de la cadena de texto y devuélvala.
String.prototype.split()
Divida un objeto String en una matriz de cadenas de texto.
String.prototype.startsWith()
Determina si la cadena de texto comienza con otro carácter de cadena de texto.
String.prototype.substr()
Devuelve el número especificado de caracteres en la cadena de texto desde una ubicación específica.
String.prototype.substring()
Devuelve caracteres entre dos índices especificados en la cadena de texto.
String.prototype.toLocaleLowerCase()
Convertirá los caracteres de la cadena a minúsculas correspondientes a la configuración regional actual. Esta función devolverá el mismo resultado que la función toLowerCase()
en la mayoría de los idiomas.
String.prototype.toLocaleUpperCase()
Convertirá los caracteres de la cadena a mayúsculas de acuerdo con la configuración regional actual. Esta función devolverá el mismo resultado que la función toUpperCase()
en la mayoría de los idiomas.
String.prototype.toLowerCase()
Convierte la cadena a minúsculas.
String.prototype.toString()
Devuelve una cadena que representa el objeto, que es una redefinición de la función Object.prototype.toString
.
String.prototype.toUpperCase()
Convierte la cadena a mayúsculas.
String.prototype.trim()
Elimina los espacios al principio y al final de la cadena de texto.
String.prototype.trimLeft()
Elimina los espacios al comienzo de la cadena de texto. Esta función no está estandarizada y no se recomienda su uso.
String.prototype.trimRight()
Elimina los espacios al final de la cadena de texto. Esta función no está estandarizada y no se recomienda su uso.
String.prototype.valueOf()
Devuelve el valor primitivo del objeto especificado. Es una redefinición de la función Object.prototype.valueOf
.
Funciones de las etiquetas HTML
Estas funciones tienen usos limitados, solo admiten un conjunto parcial de etiquetas y propiedades HTML y son compatibles con la mayoría de los navegadores, aunque recientemente se convirtieron en parte del estándar ECMAScript. Estas funciones nunca se recomiendan y no las mencionaremos aquí.
Ejemplos y aplicaciones en código
La función se puede utilizar String
como una alternativa más flexible y práctica a la función toString()
, porque opera sobre valores null
y undefined
símbolos Symbol
por ejemplo:
var outputStrings = []; for (var i = 0, n = inputValues.length; i < n; ++i) { outputStrings.push(String(inputValues[i])); }
Soporte de navegadores
Característica | Chrome | Firefox | IE | Opera | Safari |
---|---|---|---|---|---|
Soporte básico | sí | sí | sí | sí | sí |
Consulte la página de la propiedad y función de cada objeto para String
obtener detalles sobre la compatibilidad del navegador.
- Expresión const en JavaScript
- Expresión let en JavaScript
- Expresión var en JavaScript
- Expresión try…catch en JavaScript
- Expresión throw en JavaScript
- Continue en JavaScript
- Switch en JavaScript
- Expresiones if…else en JavaScript
- Declaración vacía o empty en JavaScript
- Break en JavaScript
- Sentencia block en JavaScript
- Arguments en JavaScript
- Promise en JavaScript
- Number en JavaScript
- Características JSON en JavaScript
- Array en JavaScript
- RegExp en JavaScript
- String en JavaScript
- Date en JavaScript
- Math en JavaScript
- URIError en JavaScript
- TypeError en JavaScript
- SyntaxError en JavaScript
- ReferenceError en JavaScript
- RangeError en JavaScript
- EvalError en JavaScript
- Características Boolean en JavaScript
- Error en JavaScript
- Función Symbol en JavaScript
- Constructor Function en JavaScript
- Constructor Object en JavaScript
- Función unescape() en JavaScript
- Función eval() en JavaScript
- Valor null en JavaScript
- Características Undefined en JavaScript
- Características NaN en JavaScript
- Características Infinity en JavaScript
- Función parseFloat() en JavaScript
- Función isNaN() en JavaScript
- Función isFinite() en JavaScript
- Función escape() en JavaScript
- Función encodeURIComponent() en JavaScript