Introducción
Todos sabemos que los tipos de datos de JavaScript se dividen en dos categorías: tipos básicos (o tipos primitivos) y tipos de referencia.
Los valores de los tipos básicos son segmentos simples de datos almacenados en la memoria de la pila, y se accede por valor. Hay cinco tipos básicos en JS: indefinido, nulo, booleano, número y cadena.
Un valor de tipo de referencia es un objeto almacenado en la memoria del montón, y se accede a su valor por referencia. Los tipos de referencia son principalmente objeto, matriz, función, regexp y fecha.
Los objetos tienen propiedades y métodos, por lo que no es sorprendente que veamos el siguiente código.
var favs = ['Egg', 'Lotus Pot']; favs.push ('okra'); console.log (favs); // ["huevo", "bote de loto", "okra"] console.log (favs.length); // 3La matriz es un tipo de referencia, por lo que naturalmente puede tener atributos (longitud) y métodos (empuje), lo cual es natural como tener que comer helado en verano. Pero, mire el siguiente código y piense en ello cuidadosamente, ¿es esto, esto, esto, legal?
var RealMessage = "Da dije que te amo pero mentí"; var myMessage = RealMessage.substring (5,15); console.log (myMessage); //"Te amo"
Hay una chica desconsolada que hará el método de "subcadena" realizar deliberadamente el método de "subcadena" en una cadena utilizada para romperse, y luego veré felizmente el corte y se duerme. Pero, pero, ¿no se dice que la cadena es un tipo básico? ¿Por qué puede tener métodos? ? ¿Hay alguna otra ley real, Maestro Qingtian!
De hecho, todo esto se debe a algo llamado "tipo de empaque básico". ¡Este tipo de empaque básico es particularmente honesto, y es el verdadero "devolver la ropa después del asunto, ocultando los méritos y la fama"!
Tipo de embalaje básico
Además de los tipos de referencia, como el objeto y la matriz mencionados al principio, JavaScript también nos proporciona tres tipos de referencia especiales: cadena, número y booleano, que nos facilita a operar los tipos básicos correspondientes.
Continúe mirando el ejemplo anterior de las cadenas de recorte. ¿Has notado que a pesar de usar el método de subcadena, el valor de RealMessage en sí no cambiará? Llamar a este método solo devuelve una nueva cadena.
Esto es lo que hace el tipo de embalaje básico. Originalmente, no tiene un método, pero cuando desea usarlo, puede ajustarlo y el tipo de empaque básico correspondiente tiene este método. Por ejemplo, el método de subcadena anterior, es imposible que el tipo básico de cadena tenga este método, pero el tipo de empaque lo tiene, susurrará y devolverá el resultado después de ejecutar este método. En ejecución a:
Muchas cosas sucedieron cuando RealMessage. Subtring (5,15) esta línea de código.
Primero, leerá el valor de RealMessage de la memoria. Cuando está en este modo de lectura, el fondo comienza a funcionar. JS Elevation describe estas acciones completadas en segundo plano como esta:
1. Cree una instancia de tipo de cadena;
2. Llame al método especificado en la instancia;
3. Destruye esta instancia
El ejemplo anterior puede explicarse en un código como este:
var _RealMessage = new String ("dijo que te amo pero mentí"); var myMessage = _RealMessage.substring (5,15); _ RealMessgae = null; // destruir después de que se llama al métodoEntonces, de esta manera, entendemos que no es que la cadena de tipo básica ejecute su propio método, pero el fondo crea una cadena de tipo de envoltorio básico correspondiente. Instancia una instancia basada en el valor del tipo básico, permitiendo que esta instancia llame al método especificado y finalmente se destruya, que se está moviendo.
Preste atención a la característica de "destruir" del último paso del tipo de envoltorio básico, que determina que no podemos agregar propiedades y métodos personalizados a los valores de tipo básico.
var me = "sunjing"; me.age = 18; console.log (me.age); // indefinido
Agregué el atributo de edad a la cadena "yo", y el valor será hermoso de 18 años. Sin embargo, cuando accedí nuevamente, este atributo se había ido. Esto es porque:
Cuando se realiza la segunda línea de asignación de atributos de código, se crea una instancia del tipo de envoltorio básico en segundo plano. Este atributo de edad se cuelga de la instancia, pero inmediatamente después, la instancia se destruye. Al ejecutar a la tercera línea, se recrea una nueva instancia del tipo de envoltura básica, y naturalmente no hay atributo de edad.
Mostrar tipo de embalaje básico
Además de la cadena en modo de lectura, el fondo nos ayudará a crear la instancia de tipo de envoltorio básico, que también podemos mostrar.
var str = new String ("Hello"); var str2 = str.ToUpperCase (); console.log (str2); // "Hello:Esto es diferente de lo que se guarda en la variable cuando el fondo nos ayuda a crear.
var str1 = new String ("Hello"); var str2 = "hello"; typeof str1 // "objeto" typeof str2 // "string"Resumir
Gracias al tipo de embalaje básico, es más conveniente para nosotros operar los tres tipos básicos de cadena, booleano y número. Siempre que se lean estos tres valores de tipo básico, el fondo creará la instancia de tipo de envoltorio correspondiente. Esta instancia llamará al método especificado y será destruido después de llamar. Este breve ciclo de vida determina que no podemos agregar propiedades y métodos personalizados a los tipos primitivos.
El artículo anterior tiene una comprensión profunda de por qué las cadenas pueden ser propiedad en JavaScript. Este es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.