Resumen
Un objeto que representa una serie de caracteres dentro de una cadena.
Se Crea Con
El constructor String:
new String(cadena)
Parámetros
cadena
- Cualquier cadena.
Descripción
El objeto String se crea llamando al constructor new String()
:
s_obj = new String("foo"); // crea un objeto String
El objeto String
encapsula el tipo de datos de la cadena primitiva con los métodos descritos a continuación. La función global String()
también se puede llamar sin poner new
delante para crear una cadena primitiva:
s_prim = String("bar"); //crea una Cadena primitiva
Las cadenas literales en el código fuente Javascript crean también cadenas:
s_also_prim = "foo"; // crea una Cadena primitiva
Dado que Javascript convierte automáticamente entre cadenas primitivas y objetos de cadena, podemos llamar a cualquiera de los métodos del objeto String
en una cadena primitiva. JavaScript convierte automáticamente la cadena primitiva en un objeto String
temporal, llama al método, y luego descarta el objeto String
temporal. Por ejemplo, puede utilizar la propiedad String.length
en una cadena primitiva creada a partir de una cadena literal:
s_obj.length; // 3 s_prim.length; // 3 s_also_prim.length; // 3 'foo'.length; // 3 "foo".length; // 3
(Una cadena lieteral puede usar comillas simples o dobles.)
Los objetos String
se pueden convertir a cadenas primitivas con String.valueOf()
.
Las primitivas String y los objetos String dan resultados diferentes cuando son evaluados en Javascript. Las primitivas son tratadas como código fuente; los objetos String son tratados como un objeto de secuencia de caracteres. Por ejemplo:
cadena1 = "2 + 2" // crea una primitiva de cadena cadena2 = new String("2 + 2") // crea un objeto String eval(s1) // returns the number 4 eval(s2) // returns the string "2 + 2" eval(s2.valueOf()); // returns the number 4
Puede convertir el valor de cualquier objeto en una cadena usando la función global String.
Acceder a caracteres individuales de una cadena
Hay dos maneras de acceder a un carácter individual de una cadena. El primero es el método String.prototype.charAt()
:
'gato'.charAt(1) // devuelve "a"
El otro modo es tratar la cadena como un arreglo (vector), donde cada índice se corresponde con un carácter individual:
'gato'[1] // devuelve "a"
Nota: El segundo modo (tratar la cadena como un arreglo) no forma parte de ECMAScript; es una característica de JavaScript.
En ambos casos, intentar asignar un carácter individual no funcionará. Intentar asignar un carácter a través de charAt
provocará un error:
var x = 'gato'; x.charAt(0) = 'b'; // error
Asignar un carácter vía índice no provoca ningún error, pero no produce cambios en la cadena:
var x = 'gato'; x[2] = 'p'; alert(x); // aún contiene 'gato' alert(x[2]); // aún contiene 't'
Comparación de cadenas
Los programadores de C tienen la función strcmp()
para la comparación de cadenas. En JavaScript, sólo tiene que usar los operadores menor que y mayor que:
var a = "a"; var b = "b"; if (a < b) // true document.write(a + " es menor que " + b); else if (a > b) document.write(a + " es mayor que " + b); else document.write(a + " y " + b + " son iguales.");
Propiedades
For properties available on String
instances, see Properties of String instances.
String.prototype
- Permite la adición de propiedades a un objeto Cadena.
Métodos
For methods available on String
instances, see Methods of String instances.
String.fromCharCode()
: Devuelve una cadena creada por una secuencia específica de valores Unicode.
Instancias de String
Propiedades
String.prototype.constructor
- Especifica la función que crea un prototipo de objeto.
String.prototype.length
- Refleja la longitud de la cadena.
Métodos
Ejemplos
Ejemplo: Primitiva cadena
La siguiente sentencia crea una primitiva de cadena desde la cadena literal "Alejandra", y la asigna a la variable nombre
:
var nombre = "Alejandra";
Ejemplo: Propiedades de la primitiva de cadena
Las siguientes expresiones se evalúan como 9
, "ALEJANDRA
", y "alejandra
", respectivamente:
nombre.length nombre.toUpperCase() nombre.toLowerCase()
Ejemplo: Asignar un carácter individual de una cadena
Un carácter individual no puede asignarse directamente. En cambio, una nueva cadena se puede crear usando los métodos substr o substring:
function setCharAt(cadena, indice, caracter) { return cadena.substr(0, indice) + caracter + cadena.substr(indice + 1); } alert(setCharAt('scam', 1, 'p')); // produce la cadena "spam"
Ejemplo: Pasar una cadena entre scripts de diferentes ventanas o marcos (frames)
El siguiente código crea dos variables de tipo cadena y abre una segunda ventana:
var apellido = "Maldonado"; var nombre = "Alejandra"; ventanaEmpleado = window.open('string2.html', 'window1', 'width=300, height=300'); Si el código HTML de la segunda ventana (string2.html
) crea dos variables cadena,empleadoApellido
yempleadoNombre
, el siguiente código de la primera ventana establece los valores de las variables de la segunda ventana:
ventanaEmpleado.empleadoNombre = nombre; ventanaEmpleado.empleadoApellido = apellido;
El siguiente código de la primera ventana muestra el valor de las variables de la segunda ventana:
alert('empleadoNombre en ventanaEmpleado es ' + ventanaEmpleado.empleadoNombre); alert('empleadoApellido en ventanaEmpleado es ' + ventanaEmpleado.empleadoApellido);