Practica las nuevas características de js 6 es6

1. Deconstrucción y cesión

es6 nos permite extraer valores de matrices u objetos y asignarlos a otras variables de acuerdo con un patrón determinado, esto se llama asignación estructural, veamos un ejemplo simple.

var [a,b,c] = [1,2,3];
console.log(a); // 1

Este código asigna los valores de la matriz a la derecha a las tres variables a, by c. Esta es solo la aplicación más simple, puede ser más complicada, por ejemplo

var [a,[b],c] = [1,[2,3],4];
// 这也可以

Dado que las matrices se pueden copiar estructuralmente, como en el caso de los objetos, la respuesta es sí, y los objetos también son posibles. P.ej

var {
    
    a, b} = {
    
    a:10,b:20 }

Vale la pena señalar que el nombre de la variable en el frente y el nombre de la propiedad en la parte posterior deben ser consistentes, de modo que se pueda acceder a ellos. Si son inconsistentes, el valor no está definido. Cuando ve esto, de repente siente que la deconstrucción y asignación del objeto está bastante cerrada. No continúe mirando hacia abajo. ¿Qué hacemos si queremos cambiarle el nombre de una variable?

var {
    
    a:name , b:age} = {
    
    a:10,b:20};

¡Okay! Ahora podemos name,ageacceder a él a través, por supuesto, esta es solo la aplicación más simple de asignación de estructura de objeto.

2. Generitor (generador)

Esta es una nueva adición a es6, entonces, ¿qué es? Es una nueva función introducida por el estándar ES6. Su definición no se ve muy diferente de la función. Veamos primero en qué se diferencia de las funciones ordinarias

// 函数
function demo(){
    
    
	return "ok fine my name is function";
}

// generitor对象
function* gen(){
    
    
	 yield "ok this is generitor";
	 let name = yield "name is gen";
	 return name;
}

ok no parece hacer una gran diferencia, pero solo usa function * para definir una nueva palabra clave en el cuerpo de la función. ¿Es este realmente el caso? Entonces, ¿qué hace esta palabra clave? Cuando la ejecución de esta función encuentra rendimiento, devolverá el valor detrás de ella, pero esta función no se ha ejecutado en un sentido real. Solo da control a otras funciones a ejecutar. Cuando se ejecuta el método next (), vuelve al valor anterior. Cuando se cancela la ejecución, la función next () puede pasar parámetros, la primera next () no es válida y la primera next () es más como un iniciador. P.ej

let _increment = function* increment(){
    
    //
    let i = 1;
    while(i){
    
    
        yield i++;
    }
}
var _increment = increment()
console.log(_increment.next());
console.log(_increment.next());
// 无限自增函数

Desea obtener más información sobre generitor, haga clic aquí o aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_43889562/article/details/108126423
Recomendado
Clasificación