tipo de valor js y el tipo de referencia

Un problema clásico: Las dos salidas siguientes del inconsistentes resultado?

    // 情况1:值类型
    let a = 100
    let b = a
    b = 20
    console.log(a)  // 100

    // 情况2:引用类型
    let a = { age: 100 }
    let b = a
    b.age = 20
    console.log(a.age)  // 20

Respuesta:
caso b es 1 值类型, mientras que en el caso de b es 2 引用类型.

Tipo de valor:

  • El valor de una variable de tipo de espacio se fija, se almacena en la pila.
  • Un tipo de valor y la variable B puede ser visto como una las variables no correlacionadas.
  • b cambios no afectan el valor de un valor almacenado se copia consigo mismo.
  • Usar la detección de tipo de datos typeof

Tipos de referencia:

  • Referencia espacio tipo de variable no es fijo, almacenado en el montón.
  • tipo de referencia variable b con un punto a la misma dirección de memoria.
  • b cambios afectan el valor de una copia almacenada del objeto es un puntero a un puntero.
  • Usando el instanceof tipo de datos detectado

Sal de este problema: JS en la que las variables son tipos de valor, que es una variable de tipo de referencia?

tipos de valores comunes:

let a  // undefined,注意:未定义的变量不可用const定义
const s = 'abc'  // 字符串
const n = 100  // 数字
const b = true  // bool
const s = Symbol('s')  // symbol

tipos comunes de referencia:

const obj = { x: 100 }  //对象
const arr = ['a', 'b', 'c']  //数组
const n = null  // 特殊引用类型,指针指向空地址
Publicados 673 artículos originales · ganado elogios 644 · vistas 380 000 +

Supongo que te gusta

Origin blog.csdn.net/zhaohaibo_/article/details/104465989
Recomendado
Clasificación