node - ¿Cuál es la diferencia entre const y const{} en javascript?
hoisting (3)
Cuando estudio electrón, encontré 2 formas de obtener el objeto BrowserWindow.
const {BrowserWindow} = require(''electron'')
y
const electron = require(''electron'')
const BrowserWindow = electron.BrowserWindow
¿Cuál es la diferencia entre
const
y
const {}
en JavaScript?
No puedo entender por qué el
const {}
puede funcionar.
¿Echo de menos algo importante sobre JS?
Esta es una de las nuevas características de ES6.
La notación de llaves es parte de la llamada
destructuring assignment
.
Lo que esto significa es que ya no tiene que obtener el objeto en sí y asignar variables para cada propiedad que desee en líneas separadas.
Puedes hacer algo como:
const obj = {
prop1: 1,
prop2: 2
}
// previously you would need to do something like this:
const firstProp = obj.prop1;
const secondProp = obj.prop2;
console.log(firstProp, secondProp);
// etc.
// however now you can do this on the same line:
const {prop1, prop2} = obj;
console.log(prop1, prop2);
Como ha visto al final, la funcionalidad es la misma: simplemente obtener una propiedad de un objeto.
También hay más en la tarea de desestructuración: puede verificar la sintaxis completa en MDN: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Las dos piezas de código son equivalentes, pero la primera usa la asignación de desestructuración ES6 para ser más corta.
Aquí hay un ejemplo rápido de cómo funciona:
const obj = {
name: "Fred",
age: 42,
id: 1
}
//simple destructuring
const { name } = obj;
console.log("name", name);
//assigning multiple variables at one time
const { age, id } = obj;
console.log("age", age);
console.log("id", id);
//using different names for the properties
const { name: personName } = obj;
console.log("personName", personName);
const {BrowserWindow} = require(''electron'')
La sintaxis anterior usa ES6. Si tiene un objeto definido como:
const obj = {
email: "[email protected]",
title: "Hello world"
}
Ahora, si queremos asignar o usar el correo electrónico y el campo de título de obj, entonces no tenemos que escribir toda la sintaxis como
const email = obj.email;
const title = obj.title;
Esta es la vieja escuela ahora.
Podemos usar la asignación de Desestructuración ES6 , es decir, si nuestro objeto contiene 20 campos en el objeto obj, entonces solo tenemos que escribir los nombres de los campos que queremos usar de esta manera:
const { email,title } = obj;
Este es el sintaxis más simple de ES6. Asignará
automáticamente el correo electrónico y el título del
obj
, solo el nombre debe estar correctamente indicado para el campo requerido.