ES6 - Preguntas de práctica

Tabla de contenido

Uno: preguntas de respuesta corta

1: ¿Qué es Symbol y qué hace?

2: ¿Qué son Set y Map? ¿Cuál es el efecto?

3: ¿Qué es el iterador?

4: ¿Cuál es la diferencia entre para...en y para...de?

5: ¿Qué son módulos, exportaciones e importaciones y cuáles son sus funciones?

6: Entonces, ¿en Promise es sincrónico o asincrónico? Describa brevemente el mecanismo de ejecución.

7: ¿Cuál es el resultado del siguiente código?

8: ¿Cuál es el resultado de salida en la siguiente figura?

9: ¿Para qué sirve super en clase?

10: ¿Qué es una copia superficial y qué es una copia profunda?

Dos: preguntas de operación

1: una función que encapsula un objeto Promise, combinada con setTimeout para simular asíncrono, si se devuelve el número par pasado (después de 3 segundos), el pasado es correcto, y si se pasa el número impar u otras clases, se pasa por error Será devuelto.

2: Hay un conjunto de puntajes de los estudiantes en el siguiente formato, evalúe a los estudiantes que aprobaron y calcule la suma de los puntajes de los estudiantes que aprobaron. (Las matrices se pueden escribir en este formato sin copiarlas)


Uno: preguntas de respuesta corta

1: ¿Qué es Symbol y qué hace?

Respuesta: El símbolo es un tipo de datos similar a una cadena.

Función: evitar conflictos de nombres de atributos de objetos

           Simulacros de propiedades privadas

           Definir constantes no repetitivas

2: ¿Qué son Set y Map? ¿Cuál es el efecto?

Respuesta: Conjunto: similar a una matriz, pero los valores de los miembros son únicos y no hay valores duplicados.

Mapa: objeto JavaScript (Objeto), que es esencialmente una colección de pares clave-valor (estructura Hash), pero tradicionalmente solo se pueden usar cadenas como claves. Esto trae grandes restricciones a su uso: las claves del mapa no se limitan a cadenas, y los objetos también pueden denominarse claves.

Función: se utiliza para la reorganización y el almacenamiento de datos.

3: ¿Qué es el iterador?

Respuesta: Iterador es un iterador. Es una interfaz que proporciona un mecanismo de acceso unificado para varias estructuras de datos. Cualquier estructura de datos puede completar la operación transversal siempre que se implemente la interfaz del iterador. ES6 agrega un nuevo método transversal para... de.

Los datos con interfaz de iterador nativo incluyen: matriz, argumentos, conjunto, mapa, cadena, lista de nodos.

4: ¿Cuál es la diferencia entre para...en y para...de?

Respuesta: for in atraviesa el índice (atravesando tipos enumerables)

for of atraviesa el valor de la matriz (el iterable transitable tiene una interfaz de iterador)

5: ¿Qué son módulos, exportaciones e importaciones y cuáles son sus funciones?

Respuesta: el módulo necesita utilizar la importación de ES6 en js. <script type="module"></script>, el tipo de script se define como módulo.

export Especifica el código exportado. El comando de exportación puede aparecer en cualquier parte del módulo, pero debe estar en el nivel superior del módulo.

importar funciones del módulo de importaciones. import importa solo una referencia de solo lectura y espera hasta que se ejecute el script de acuerdo con la referencia para ir al módulo y obtener el valor. Es por eso que la importación se puede cargar bajo demanda.

6: Entonces, ¿en Promise es sincrónico o asincrónico? Describa brevemente el mecanismo de ejecución.

Respuesta: El constructor de la promesa se ejecuta de forma sincrónica y el método luego se ejecuta de forma asincrónica.

then() es un método de instancia de Promise. Después de que cambia el estado de Promise, then() puede obtener el valor de éxito o fracaso y describirlo.

7: ¿Cuál es el resultado del siguiente código?

El resultado es: 1243.

8: ¿Cuál es el resultado de salida en la siguiente figura?

La salida es 2.

9: ¿Para qué sirve super en clase?

Respuesta: ES6 estipula que las subclases deben llamar a super () en el método constructor (); de lo contrario, se informará un error. El supermétodo se utiliza para crear la clase principal de este objeto.

10: ¿Qué es una copia superficial y qué es una copia profunda?

Respuesta: Copia superficial: copie la dirección de la pila. Los cambios de tipos de datos simples no se afectan entre sí, pero la dirección del montón del tipo de datos de referencia es la misma y los cambios se afectarán entre sí;

Copia profunda: no solo copie la dirección de la pila, sino también la dirección del montón; el cambio del tipo de datos básico y el tipo de datos de referencia no tiene ningún efecto en los datos originales.

Dos: preguntas de operación

1: una función que encapsula un objeto Promise, combinada con setTimeout para simular asíncrono, si se devuelve el número par pasado (después de 3 segundos), el pasado es correcto, y si se pasa el número impar u otras clases, se pasa por error Será devuelto.

        let num = prompt('输入一个数字:');
        const MyPormise = new Promise((resolve, reject) => {
            setTimeout(() => {
                if (num % 2 == 0) {
                    resolve('传入正确');
                } else {
                    reject('传入错误');
                }
            }, 3000)
        });
        MyPormise.then(
            resolve => console.log(resolve),
            reject => console.log(reject)
        )

2: Hay un conjunto de puntajes de los estudiantes en el siguiente formato, evalúe a los estudiantes que aprobaron y calcule la suma de los puntajes de los estudiantes que aprobaron. (Las matrices se pueden escribir en este formato sin copiarlas)

personas constantes = [

   {nombre real: 'Zhang San 1', puntuación: 60},

   {nombre real: 'Zhang San 2', puntuación: 20},

   {nombre real: 'Zhang San 3', puntuación: 90},

......

]

 <ul id="scores"></ul>
    <hr>
    <input type="button" value="查找及格的学生" id="search" />
    <p>及格学生如下:</p>
    <ul id="pass"></ul>

    <script>
        let sScore = document.querySelector('#scores');
        let search = document.querySelector('#search');
        let pass = document.querySelector('#pass');
        const scores = [
            { realname: "张三", score: 40 },
            { realname: "李四", score: 60 },
            { realname: "王五", score: 90 },
            { realname: "赵六", score: 50 },
        ];

        let str = "";
        for (var i = 0; i < scores.length; i++) {
            str = str + `<li>姓名:${scores[i].realname},分数:${scores[i].score}</li>`;
        }
        sScore.innerHTML = str;

        search.addEventListener('click', function () {
            let newArr = scores.filter(item => {
                return item.score >= 60;
            })

            let str = '';
            newArr.forEach(item => {
                const { realname, score } = item;
                str = str + `<li>姓名:${realname}  分数:${score}</li>`;
            })
            pass.innerHTML = str;
            console.log("及格学生分数总和为"+newArr.reduce((sum, item) => sum + item.score, 0));
        })
       
    </script>

Supongo que te gusta

Origin blog.csdn.net/m0_46461853/article/details/125929387
Recomendado
Clasificación