Cadenas en JavaScript. Parte 1

Hace unas semanas que he recibo 2 libros de Javascript que me he comprado en Amazon y estoy empezando poco a poco a leerlos.
Intentaré todo lo que pueda ir colgando resúmenes de los capítulos de uno de los libros : Javascript Cookbook. Por lo que he visto, una maravilla.

Las cadenas en JavaScript es uno de los componentes mas importantes, probablemente mas usado que cualquier otro tipo de dato.
Las cadenas son también usadas como parámetros cuando se invoca aplicaciones AJAX del lado del servidor, además de crear el formato de serialización básica de todos los objetos JavaScript. Uno de los métodos que comparten todos los objetos JavaScript es toString, que devuelve una cadena que contiene el formato serializado del objeto.

Una cadena JavaScript puede ser un tipo de dato primitivo o un objeto. Los tipos de datos primitivos en Javascript son: números, Boolean (true or false), null (sin dato), and undefined (unknown o no conocido). Adicionalmente como tipo de dato primitivo las cadenas son también literales JavaScript: una colección que incluye los números (ya sean floats o enteros), el formato literal de las matrices, objetos y expresiones regulares, así como los números y booleanos.

Una cadena Objeto

Un objeto de cadena se llama String, y como todos los otros objetos JavaScript tiene un conjunto de propiedades que vienen predefinidos en el tipo de objeto.

Un objeto String puede crear una instancia mediante el operador new de JavaScript, para crear una nueva instancia de objeto:

var ciudad= new String("Salamanca");

Una vez que una instancia, cualquiera de las propiedades de la cadena disponibles se puede acceder a ella. Por ejemplo podemos usar el método toLowerCase para pasar todo a minúsculas

var ciudad_min= ciudad.toLowerCase(); //  quedaría como salamanca

Concatenando cadenas

Se pueden concatenar cadenas de varias formas en JavaScript.
Lo normal es usar el operador (+).

var string1 = "Hola ";
var string2 = "mundo";

var string3 = string1 + string2; // creará una cadena nueva con "Hola mundo"

Se puede concatenar las cadenas de texto que sean necesarias con el operador (+).

También se puede usar la asignación (+=) para concatenar varias cadenas.

var oldValue = "creando ";
oldValue += " un tutorial"; // concatendo las cadenas nos resultaría "creando un tutorial"

Hay un método incorporado en String que permite concatenar multiples cadenas. Se necesita uno o más parámetros, cada uno de los cuales se anexan al final del objeto de cadena. Este método es concat.

var nwStrng = "".concat("Esto","es ","una ","cadena"); // que devolverá "Esto es una cadena"

El método concat puede ser una manera más sencilla de generar una cadena de varios valores, como la generación de una cadena de varios campos del formulario. Sin embargo, el uso del operador de suma es el método más comúnmente utilizado.

Que ocurre cuando quieres concatenar con otro tipo de dato?

Usar exactamente los mismos operadores, tales como la suma (+) y la asignación (+=), para concatenar.

Por ejemplo con números:

var numValue = 23.45;
var total = "El total es:  " + numValue; // la cadena será "El total es: 23.45"

Con el tipo de dato Boolean o booleano

var boolValue = true;
var strngValue = "El valor es: " + boolValue; // resultará "El valor es: true"

O con tipo de datos number o con números

var numValue = 3.0;
strngValue = "El valor es: " + numValue; // resultará  "El valor es: 3"

La conversión automática de datos también se aplica en la concatenación de un objeto String con una cadena literal, que es una capacidad necesaria cuando no sabes que las cadenas con las que estas trabajando son objetos o literales, pero igualmente se quiere concatenar.

var strObject = new String("El valor es: ");
var strngLiteral = "una cadena";
var strngValue = strObject + strngLiteral; // resultará  "El valor es: una cadena"

Comparando cadenas

Para comparar cadenas se utiliza el operador (==)

var strName = prompt("Introduce tu nombre", "");

if (strName == "Pedro") {
   alert("ooh yeah!!");
} else {
   alert("no eres el peter!");
}

Ahora digamos que queremos comparar la cadena y el tipo de dato. Para ellos usaremos el comparador estricto de igualdad (===) que comprueba que el dato sea el mismo, así como el tipo de dato.

var  strObject = new  String("Pedro");
var  strLiteral  =  "Pedro";

if (strObject  ==  strLiteral) // esto devolverá true

if (strObject === strLiteral) // esto fallará porque los tipos de dato son distintos

También se pueden comparar cadenas para saber el orden alfabético de una palabra. Esto se hace muy fácilmente con el comparador (<) o (>), es decir, el mayor que o menor que.

var sOne = "gato";
var sTwo = "perro"
if (sOne > sTwo) //devolverá true porque la "g" está antes que la "p"

También se puede usar con mayúsculas y minúsculas.

var sOne  = "Gato";
var sTwo  = "gato";
if (sOne >=  sTwo) // true, porque 'G'  tiene mas importancial léxicamente que "g".

Otra forma para comparar cadenas es usar el método localeCompare de String.

var fruit1 = "manzana";
var fruit2 = "pero";
var i = fruit1.localeCompare(fruit2); // devolverá -1

Pasar cadena a mayúsculas. O bien pasar cadena a minúsculas

Hay varios métodos incorporadoras en String para convertir textos a mayúsculas o minúsculas que son toUpperCase y toLowerCase respectivamente.

Pasar cadena de texto a mayúsculas en Javascript.

var strName = prompt("Cual es tu nombre", "");

var NombreMayuscula = strName.toUpperCase ();

Pasar cadena de texto a minúscula en Javascript.

var strName = prompt("Cual es tu nombre", "");

var NombreMayuscula = strName.toLowerCase ();

Fuente : Javascript Cookbook

8 opiniones en “Cadenas en JavaScript. Parte 1”

  1. Hola!
    No soy muy buena en esto, trabajo php y js.
    Tengo mi formulario donde mis cajas de texto ya tienen un valor por defecto, al enviar la informacion, aunque el usuario no introduzca nada, los campos ya cuentan con un valor, por lo que al validar hago esto:
    if (nombre.value==”Inserte nombre”){
    alert(“Campo vacío!/nIntroduce nombre”);
    return false}
    Donde el formulario que manejo contiene un campo de texto llamado nombre, con valor un valor predeterminado así:

    espero haberme explicado. Gracias!

    1. Hola Cristina,

      Pero cual es exactamente tu duda o pregunta? Te funciona mal o te da error? Si es así me envías alguna url para que lo pueda comprobar?

      Un saludo!

  2. Este ejemplo está mal:

    var sOne = “gato”;
    2
    var sTwo = “perro”
    3
    if (sOne > sTwo) //devolverá true porque la “g” está antes que la “p”

    El código ASCII de g es menor que el de p.

  3. Hola entonces cuando declaro
    var str = “cadena”
    var str = new String(“cadena”)
    son dos tipos de datos diferentes.

    En la segunda declaración yo estoy creando un objeto con sus propios métodos. ¿por qué puedo usar esas mismas funciones con la variables de la primera declaración? ¿Qué está pasando en sí?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *