Despacho de aduana de base cero JavaScript (13) tipos de datos simples, parámetros de tipos de datos simples, tipos simples y tipos complejos, asignación de memoria de tipos simples, asignación de memoria de tipos complejos

27 - Tipos de datos simples

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 简单数据类型 null  返回的是一个空的对象  object 
        var timer = null;
        console.log(typeof timer);
        // 如果有个变量我们以后打算存储为对象,暂时没想好放啥, 这个时候就给 null 
        // 1. 简单数据类型 是存放在栈里面 里面直接开辟一个空间存放的是值
        // 2. 复杂数据类型 首先在栈里面存放地址 十六进制表示  然后这个地址指向堆里面的数据
    </script>
</head>

<body>

</body>

</html>

Si tenemos una variable que planeamos almacenar como un objeto en el futuro, y no tenemos idea de dónde colocarla, en este momento la almacenaremos en la pila para el "
tipo de datos simple nulo", y directamente abra un espacio para almacenar el
tipo de datos simple con valor de tiempo: se almacena en En la pila, se abre un espacio directamente para almacenar el valor de tiempo. El
tipo de datos complejo primero almacena la dirección en la pila en hexadecimal, y luego esta dirección apunta a los datos en el montón
Tipo de datos simples: almacenados en la pila, lo que abre directamente un espacio para el almacenamiento Valor de tiempo
Tipo de datos complejos: primero almacena la dirección en la pila, expresada en hexadecimal, y luego esta dirección apunta a los datos en el par

28-Paso de parámetro de tipo de datos simple

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 简单数据类型传参
        function fn(a) {
    
    
            a++;
            console.log(a);
        }
        var x = 10;
        fn(x);
        console.log(x);
    </script>
</head>

<body>

</body>

</html>

function fn(a){a++;console.log(a);}
function Person(name){this.name=name;}
function f1(x){console.log(x.name);x.name="张学友';console.log(x.name);}
function f1(x)【console.log(x.name);x.name="张学友'lconsole.log(x.name);}

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 复杂数据类型传参
        function Person(name) {
    
    
            this.name = name;
        }

        function f1(x) {
    
     // x = p
            console.log(x.name); // 2. 这个输出什么 ?  刘德华   
            x.name = "张学友";
            console.log(x.name); // 3. 这个输出什么 ?   张学友
        }
        var p = new Person("刘德华");
        console.log(p.name); // 1. 这个输出什么 ?   刘德华 
        f1(p);
        console.log(p.name); // 4. 这个输出什么 ?   张学友
    </script>
</head>

<body>

</body>

</html>

function Persona(nombre){this.name=name;}
function f1(x){console.log(x.name);x.name=“张学友”;console.oog(x.name);}

Tipos simples y complejos de JavaScript

1. Tipos simples y complejos

Los tipos simples también se denominan tipos de datos básicos o tipos de valor, y los tipos complejos se denominan tipos de referencia.
Tipo de valor: tipo de datos simple/tipo de datos básico, el valor en sí se almacena en la variable cuando se almacena, por lo que se denomina
cadena de tipo de valor, número, booleano, indefinido, nulo tipo de
referencia: tipo de datos complejo, solo la variable almacenado en el tiempo de almacenamiento Es una dirección (referencia), por lo que se denomina tipo de datos de referencia
Un objeto (objeto del sistema, objeto personalizado) creado por la nueva palabra clave, como Objeto, Matriz, Fecha, etc.

Los tipos simples también se denominan tipos de datos básicos, los tipos de valores y los tipos complejos se denominan fatiga de referencia.
Tipos de valores: tipos de datos simples, tipos de datos básicos y el valor en sí almacenado en variables de almacenamiento
. La única dirección de tiempo, el tipo de datos de referencia, el objeto del sistema de objetos creado por la nueva palabra clave, el objeto personalizado Objeto, matriz, fecha
2. La
diferencia entre la asignación de espacio de pila y pila:
  1. Pila (sistema operativo): automáticamente por el sistema operativo Asignar y liberar el valor del parámetro de la función, el valor de la variable local, etc. Su método de operación es similar a la pila en la estructura de datos,
los tipos de datos simples se almacenan en la pila
  2. Heap (sistema operativo): almacena tipos complejos (objetos), que generalmente son asignados y liberados por el programador. no suelte, el mecanismo de recolección de basura Reciclar.
El tipo de datos complejo se almacena en el montón.
Pila: El valor del parámetro de la función y el valor de la variable local son asignados y liberados automáticamente por el sistema operativo. El método de operación es similar al
montón: el sistema operativo almacena el tipo complejo objetos, que generalmente son asignados y liberados por el programador. El sistema operativo, que almacena objetos de tipo complejo, generalmente es utilizado por los programadores
inserte la descripción de la imagen aquí
. Nota: No existe el concepto de pila en JavaScript. A través del método de pila, puede hacerlo más fácil para que todos entiendan algunos métodos de ejecución de código, lo cual es conveniente para aprender otros lenguajes en el futuro.
No hay concepto de pila en JS,

3. Tipos simples de asignación de memoria

Tipo de valor (tipo de datos simple): cadena, número, booleano, indefinido, nulo
Los datos de la variable de tipo de valor se almacenan directamente en la variable (espacio de pila)
cadena, número, booleano, indefinido, nulo
cadena, número, booleano, indefinido , valor nulo
Los datos de la
inserte la descripción de la imagen aquí
variable de tipo se almacenan directamente en el espacio de pila de variables Los datos de la variable de tipo de valor se almacenan directamente en el espacio de pila de variables

4. Asignación de memoria de tipos complejos

Tipo de referencia (tipo de datos complejo): los objetos (objetos del sistema, objetos personalizados) creados por la nueva palabra clave, como Objeto, Matriz, Fecha y otras
variables de tipo de referencia (espacio de pila) almacenan direcciones, y las instancias de objetos reales se almacenan en Tipos de referencia en el espacio de almacenamiento dinámico
: tipos de datos complejos, objetos creados por la nueva palabra clave, objetos del sistema, objetos personalizados, objeto, matriz,
objeto de fecha, matriz, tipos de
referencia de fecha (tipos de datos complejos) objetos creados por la nueva palabra clave, objetos del sistema, objetos personalizados , Objeto, Matriz,
Variables de tipo de referencia de fecha, la dirección de tiempo almacenada en el espacio de pila, la instancia de objeto real se almacena en el espacio de montón
inserte la descripción de la imagen aquí
Tipo de referencia (tipo de datos complejo): objetos creados por la nueva palabra clave (Objeto del sistema, objeto personalizado) , como Objeto, Matriz, Fecha, etc.
La dirección se almacena en la variable de tipo de referencia (espacio de pila), y la instancia del objeto real se almacena en el espacio de almacenamiento dinámico.
Tipo de referencia: tipo de datos complejos: objeto creado por la nueva palabra clave , objeto del sistema, objeto personalizado Objeto,
variable de tipo de referencia ArraymDate, la dirección de tiempo almacenada en el espacio de la pila, la instancia del objeto real se almacena en el espacio del montón

5. Paso de parámetro de tipo simple

El parámetro formal de la función también se puede considerar como una variable. Cuando pasamos una variable de tipo de valor como parámetro al parámetro formal de la función, en realidad copiamos el valor de la variable en el espacio de la pila al parámetro formal, entonces en el método Cualquier modificación de los parámetros internos no afectará a las variables externas.

function fn(a) {
    
    
    a++;
    console.log(a); 
}
var x = 10;
fn(x);
console.log(x)

función fn(a){a++;console.log(a);}
var x=10;
fn(x);
consola.log(x);
función fn(a){a++;consolelog(a);}
var x=10;
fn(x);
consola.log(x);

6. Paso de parámetros de tipo complejo

El parámetro formal de la función también se puede considerar como una variable. Cuando pasamos una variable de tipo de referencia al parámetro formal, en realidad copiamos la dirección del montón guardada por la variable en el espacio de la pila al parámetro formal. El parámetro formal y el los parámetros reales se guardan en realidad. es la misma dirección de almacenamiento dinámico, por lo que se opera en el mismo objeto.

El parámetro formal de la función también se puede considerar como una variable. Cuando pasamos la variable de tipo de referencia al parámetro formal, la dirección del montón guardada por la variable en el espacio de la pila se copia al parámetro formal. Cuando el parámetro formal y los parámetros reales se guardan La misma dirección de almacenamiento dinámico, el mismo objeto cuando se opera

function Person(name) {
    
    
    this.name = name;
}
function f1(x) {
    
     // x = p
    console.log(x.name); // 2. 这个输出什么 ?    
    x.name = "张学友";
    console.log(x.name); // 3. 这个输出什么 ?    
}
var p = new Person("刘德华");
console.log(p.name);    // 1. 这个输出什么 ?   
f1(p);
console.log(p.name);    // 4. 这个输出什么 ?  

El parámetro formal de una función también se puede considerar como una variable. Cuando pasamos una variable de tipo de referencia al parámetro formal, en realidad copiamos la dirección del montón guardada por la variable en el espacio de la pila al parámetro formal.
El parámetro formal del También se puede ver la función Es una variable. Cuando pasamos una variable de tipo de referencia a un parámetro formal, en realidad copiamos la dirección del montón guardada por la variable en el espacio de la pila al parámetro formal.
De hecho, copiamos la dirección del montón guardada por la variable en el espacio de la pila al parámetro formal. Los parámetros formales, los parámetros formales y los parámetros reales en realidad guardan la misma dirección de almacenamiento dinámico, por lo que la operación es el mismo objeto

Supongo que te gusta

Origin blog.csdn.net/weixin_43428283/article/details/124179020
Recomendado
Clasificación