Obtenha rapidamente entrevistas com front-end do JS - Capítulo 2 - Tipos e cálculos de variáveis básicas do JS

Capítulo 2 Tipos e cálculo de variáveis ​​básicas de JS

1. Noções básicas de JS

1. Tipos de valor e tipos de referência

2. O operador typeof

Segundo, cálculo variável e conversão de tipo

Concatenação de cadeias

2. == e ===

3. declaração se e cálculo lógico

3. Resumo das perguntas respondidas

 1. Que tipos podem ser julgados?

 2. Quando usar == Quando usar ===?

 3. Qual é a diferença entre o tipo de valor e o tipo de referência?

 4. Cópia profunda manuscrita

4. Resumo


Introdução ao tópico

  1. Que tipos podem ser julgados?
  2. Quando usar === Quando usar ==?
  3. Qual é a diferença entre o tipo de valor e o tipo de referência?
  4. Cópia profunda manuscrita

1. Noções básicas de JS

1. Tipos de valor e tipos de referência

Tipo de valor

Tipo de referência

deixe a = 100

deixe b = a

a = 200

Console.log (b) // 100

deixe a = {idade: 20}

deixe b = a

b.age = 21

Console.log (a.age) // 21

Análise de pilha: (a pilha é de cima para baixo, a pilha é de baixo para cima)

Tipo de valor

Tipo de referência:

Tipos de valores comuns: número, indefinido, sequência, booleano, símbolo

Tipos de referência comuns: objeto, matriz Tipos de referência especiais: função nula, fu ()

2. O operador typeof

// determina todos os tipos de valor

Deixe um; typeof a // ' indefinido '

const str = ' abc ' ; typeof str // ' string '

const n = 100; typeof n // ' número '

const b = verdadeiro; typeof b // ' booleano '

const s = símbolo ( '  s ' ); typeof s // ' símbolo '

// Pode julgar a função

typeof console.log // ' função '

typeof function () {} // ' função '

// Pode identificar o tipo de referência (não pode continuar a identificar)

typeof null // ' objeto '

typeof [ ' a ' , ' b ' ] // ' objeto '

typeof {x: 100} // ' objeto '

3. Cópia profunda

Cópia rasa

const obj1 = {
    age: 20,
    name: 'xxx',
    address: {
        city: 'beijing'
    }
}
const obj2 = obj1
obj2.address.city = 'shanghai'
console.log(obj1.address.city)   // shanghai

Cópia profunda

const obj1 = {
    age: 20,
    name: 'xxx',
    address: {
        city: 'beijing'
    },
    arr: ['a', 'b', 'c']
}
const obj2 = deepClone(obj1)
obj2.address.city = 'shanghai'   
obj2.arr[0] = 'a1'
console.log(obj1.address.city)   // beijing
console.log(obj1.arr[0])         // a
/** 
 * 深拷贝
 * @param {Object} obj 要拷贝的对象
 */
function deepClone(obj = {}) {
    if (typeof obj !== 'object' || obj == null) {
        // obj 是 null ,或者不是对象和数组,直接返回
        return obj
    }
    // 初始化返回结果
    let result
    if (obj instanceof Array) {    // 判断是否为数组
        result = []
    } else {
        result = {}
    }
    for (let key in obj) {
        // 保证 key 不是原型的属性
        if (obj.hasOwnProperty(key)) {
            // 递归调用!!!
            result[key] = deepClone(obj[key])
        }
    }
    // 返回结果
    return result
}


Segundo, cálculo variável e conversão de tipo

Concatenação de cadeias

const a = 100 + 10    // 110  可以使用100 + parseInt(‘10’)
const b = 100 + ‘10’   // 10010
const c = true + ‘10’  // true10	
const d = 100 + parseInt(‘10’)    // 110

2. == e ===

100 == ‘100’   // true
0 == ‘’   // true
0 == false   // true
false == ‘’   // true
null == undeined   // true

(== Tente torná-los iguais)

// 除了 == null 之外,其他都一律用 ===
Const obj = { x: 100 }
If (obj.a == null ) {}
// 相当于
// if (obj.a === null || obj.a === undefined) {}

3. declaração se e cálculo lógico

verdadeiramente variável: !! a === variável verdadeira (true após duas não operações)

Falsamente variável: !! a === variável falsa (falsa após duas não operações)

//  一下是falsely变量,除此之外都是truly变量
!! 0 === false
!! NaN === false
!! ‘’ === false
!! null === false
!! undefined === false
!! false === false

3. Resumo das perguntas respondidas

 1. Que tipos podem ser julgados?

    Identifique todos os tipos de valor

    Função de reconhecimento

    Determine se é o tipo de aplicativo

 2. Quando usar == Quando usar ===?

    Além de == null, todos os outros ===

 3. Qual é a diferença entre o tipo de valor e o tipo de referência?

    O tipo de valor é cópia profunda, o tipo de referência é cópia superficial

 4. Cópia profunda manuscrita

    Preste atenção ao tipo de valor de julgamento e tipo de referência

    Preste atenção para determinar se é uma matriz ou um objeto

    Use recursão

4. Resumo

 1. Tipo de valor VS tipo de referência, modelo de pilha, cópia detalhada

 2. Tipo de operador

 3. Conversão de tipos, variáveis ​​reais e falsas

Publicado 26 artigos originais · elogiado 6 · visitas 1391

Acho que você gosta

Origin blog.csdn.net/Sabrina_cc/article/details/105449535
Recomendado
Clasificación