tipos principales primitivos primitives example datos data cuadro array javascript

principales - ¿Es String un tipo u objeto primitivo en Javascript?



tipos de variables en javascript (4)

Ambos.

Hay un objeto String y hay literales de cadena.

Puede llamar a cualquier método de cadena en un literal y puede llamar a cualquier método de cadena en un objeto de cadena.

La principal diferencia es que un objeto de cadena genera un nuevo objeto, de modo que la new String("foo") !== new String("foo")

Eso y un objeto String es de tipo "object" y no "string"

¿Cómo comprobar ambos?

if(typeof(s) == "string" || s instanceof String){ //s is a string (literal or object) }

Créditos a @Triynko por el fragmento en los comentarios.

¿Es String un tipo u objeto primitivo en Javascript? La fuente dice: Undefined, Null, Boolean, Number y String son todos tipos primitivos en Javascript. Pero dice que la cuerda es un objeto también. Estoy confundido. ¿Alguien por favor puede explicar?

Gracias de antemano ;-)


En realidad, la misma respuesta se aplica a: cadenas, números, booleanos . Estos tipos tienen su versión primitiva y de objeto que están obligados en el tiempo de ejecución de la aplicación, bajo el capó (sin su conocimiento).

Coerción

JavaScript está mal escrito. Esto significa que siempre que su código quiera realizar una operación con tipos de datos no válidos (como agregar una cadena a un número), JavaScript intentará encontrar la mejor coincidencia para este escenario.

Este mecanismo también se llama, como se mencionó anteriormente, coerción .

Primitivas y propiedades

Puede encontrar el siguiente código confuso:

> "hello world".length 11

porque "hello world" es una cadena literal, es decir, una primitiva . Y sabemos que los primitivos no tienen propiedades . Todo está bien.

Entonces, ¿cómo funciona eso? Coerción: la primitiva se envuelve con un objeto (bajo coacción) por solo una pequeña fracción de tiempo, se utiliza la propiedad del objeto e inmediatamente se elimina el objeto.

Coerción trabajando en ambos sentidos.

De modo que los primitivos están fundidos con sus versiones de envoltorio de objetos, pero también funciona al revés. Considere el siguiente código:

> String("hello ") + String("world") "hello world" > Number(2) + 3 5

Los objetos son de base a sus versiones primitivas para llevar a cabo la operación.

Lea esta brillante explicación para aprender más.


JavaScript tiene tanto cadenas primitivas como de objeto.

> var foo = "foo" undefined > var bar = new String("bar"); undefined > foo "foo" > bar String > typeof foo "string" > typeof bar "object"


var a = "string"; typeof a // yields "string" var a = new String(''string''); typeof a // yields "object"