¿Cuál es la diferencia entre ‘String’ y ‘string’ en TypeScript?

A diferencia de JavaScript, TypeScript utiliza tipos estáticos, es decir, especifica qué tipo de datos podrá contener la variable. Dado que TypeScript es un superíndice de JavaScript, también distingue entre una string y una string. El uso de un objeto de string en JS (o TS para el caso) es mínimo. Los objetos de string tienen la función de agregar una propiedad a un objeto. 

En general, la string (con una ‘s’ minúscula) denota una primitiva, mientras que la string (con una ‘S’ mayúscula) denota un objeto. JavaScript admite cinco tipos de primitivas y la string es una de ellas. Obtendrá la idea de variables y tipos de datos en JavaScript del artículo vinculado.

String primitiva: La string (con una ‘s’ minúscula) indica una primitiva, las primitivas son valores que no tienen propiedades. Los literales de string y algunas strings devueltas de una llamada de función de string se pueden clasificar como primitivos (string). Una string primitiva se puede convertir en un objeto mediante el uso de un contenedor.

Sintaxis: 

var test1 = "A TypeScript variable of type 'string'";

String de objeto: el objeto es una acumulación de diferentes propiedades. Un objeto puede llamar a numerosos métodos correspondientes a él.

Sintaxis:  

var test2 = new String('another test');
  • Ejemplo: 

Javascript

<script>
let a = new String("An object !");
let b = "A literal ! haha";
console.log(typeof(a));
console.log(typeof(b));
</script>

Producción: 

object 
string 

En el código anterior, vemos que el tipo de variable «a» es un objeto, mientras que «b» es una primitiva (string). Muestra que un literal de string es primitivo. Lo importante a tener en cuenta aquí es que podemos usar un método para «b» aunque no sea un objeto. Esto se debe a que JavaScript cambia una primitiva a su objeto cuando se llama a un método a través de él. Esto sucede por una cantidad de tiempo muy pequeña solo para ejecutar el método y vuelve a su estado primitivo. Entonces, ¿por qué puede llegar la pregunta de por qué necesitaremos el objeto String? 

Necesidad de un objeto de string: 
cuando usamos la palabra clave nuevo, TS crea un nuevo objeto cada vez, a diferencia de cuando usa un tipo primitivo, si tiene el mismo valor para las variables, entonces apuntan a la misma memoria. Consulte el siguiente ejemplo. 

  • Ejemplo 1: El siguiente ejemplo muestra cómo se muestra que a1 y b1 son iguales ya que son literales que tienen el mismo valor, mientras que a2 y b2 se muestran diferentes porque usamos la palabra clave new que crea dos objetos diferentes. 

Javascript

<script>
let a1 = "Hello World";
let b1 = "Hello World";
console.log(a1 != b1);
let a2 = new String("Hello World");
let b2 = new String("Hello World");
console.log(a2 != b2);
</script>

Producción: 

false
true
  • Ejemplo 2: El uso de eval difiere de una string primitiva a un objeto. Consulte el siguiente ejemplo. En este ejemplo, veremos cómo difieren string y String cuando se usa el método eval() . La string primitiva se evalúa directamente, es decir, 25 * 25 le da 525 como salida, mientras que el objeto dará la salida como sí mismo, ya que eval() devuelve el argumento sin cambios si no es una string primitiva. También podemos evaluar el objeto cambiándolo a una string primitiva usando el método toString() .

Javascript

<script>
var a3 = '21 * 25' ;
console.log(eval(a3));
var b3 = new String("1 + 1");
console.log(eval(b3));
console.log(eval(b3.toString()));
</script>

Producción: 

525 
String { "1 + 1" }
2

Como hemos aprendido anteriormente, el objeto de string puede contener propiedades. Podemos usar objetos String para contener un valor adicional en las propiedades. Aunque esto no se usa comúnmente, sigue siendo una característica de JS. 

var primitive = 'hello';
var object = new String('HELLO');
primitive.prop = 'world';//Invalid
object.prop = 'WORLD';//Valid

Diferencia entre string y string:

string primitiva Objeto de string
Las primitivas de string se utilizan ampliamente. Los objetos String apenas se utilizan.
Las primitivas de string solo contienen el valor. El objeto String tiene la capacidad de mantener la propiedad.
Las strings son inmutables, por lo tanto, son seguras para subprocesos. El objeto String es mutable.
La primitiva de string no tiene métodos. El objeto String tiene métodos.
No se pueden crear dos literales diferentes con el mismo valor. Puede crear nuevos objetos con la palabra clave ‘nuevo’.
Es un tipo de datos primitivo. Envuelve el tipo de datos primitivo para crear un objeto.
Pasado por valor que es una copia de la primitiva misma. Pasado por referencia a los datos reales.
Cuando se usa eval(), estos se tratan directamente como código fuente. Cuando se usa eval(), estos se procesan como una string.

Publicación traducida automáticamente

Artículo escrito por vijaysouri4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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