Tag: ecmascript 6

¿Qué hace llamar a super () en un constructor React?

Aprendiendo a reactjsr de los documentos y encontré este ejemplo: class Square extends React.Component { constructor() { super(); this.state = { value: null, }; } … } Según Mozilla , super te permite usar this en el constructor. ¿Hay alguna otra razón para usar un super independiente (sé que super te permite acceder a los […]

ES6 promete: cómo encadenar funciones con argumentos

Cómo encadenar funciones con retrasos. Intenté lo siguiente: Promise.resolve() .then(setKeyframe(‘keyframe-0’)) .then(delay(3000)) .then(setKeyframe(‘keyframe-1’)) .then(delay(3000)) .then(setKeyframe(‘keyframe-2’)) ; function delay(ms) { return new Promise((resolve, reject) => { setTimeout(resolve, ms); }); } function setKeyframe (name) { var element = document.getElementsByClassName(‘animation-container’)[0]; element.className = ‘animation-container ‘ + name; } Todas las funciones parecen ser llamadas inmediatamente después de la otra. La […]

Desestructuración y aliasing de objetos JavaScript

¿Hay una manera de destruir un objeto en JavaScript y alias el objeto desestructurado local? Algo como: const env = {ENV_VAR_X, ENV_VAR_Y, ENV_VAR_Z} = process.env; … y que env convierta en una constante local que contiene esas variables de entorno seleccionadas. (Soy consciente de que mi ejemplo no funciona con Babel) { ENV_VAR_X: “s867c7dsj4lal7”, ENV_VAR_Y: […]

¿Cuáles son las ventajas / desventajas de crear una función de nivel superior en ES6 con flechas o sin?

¿Cuáles son las ventajas / desventajas de crear una función de nivel superior en ES6 / ES2015 de esas diferentes maneras? ¿O es solo una cuestión de gusto / guía de estilo, etc.? Opción 1: function square(n) { return n * n; } Opcion 2: var square = function(n) { return n * n; }; […]

Función de flecha ECMAScript 6 que devuelve un objeto

Cuando se devuelve un objeto desde una función de flecha, parece que es necesario utilizar un conjunto adicional de {} y una palabra clave de return debido a una ambigüedad en la gramática. Eso significa que no puedo escribir p => {foo: “bar”} , pero tengo que escribir p => { return {foo: “bar”}; } […]

Importación del módulo ES6 que da “Uncaught SyntaxError: Identificador inesperado”

Para un proyecto personal, estoy tratando de usar la importación de ES6 para escribir un código más limpio. Como primera prueba, estoy escribiendo un objeto que debería generar un menú. El código completo funciona cuando estoy cargando la clase directamente, pero al usar la importación y exportación en ES6, se produce un error “Error de […]

¿Por qué especificar una producción por separado para el operador de asignación con el símbolo `=` literal en vez del símbolo `AssignmentOperator`

La gramática EcmaScript para AssignmentExpression especifica lo siguiente: AssignmentExpression : ConditionalExpression YieldExpression ArrowFunction AsyncArrowFunction LeftHandSideExpression = AssignmentExpression <————– here LeftHandSideExpression AssignmentOperator AssignmentExpression AssignmentOperator : one of *= /= %= += -= <<= >>= >>>= &= ^= |= **= Me pregunto cuál es la razón detrás de especificar LeftHandSideExpression = AssignmentExpression como producción separada en lugar […]

Usando el método `response.end` de Node con promise

Supongamos que tengo un server HTTP básico que responde a todo con "foo": import http from 'http' http.createServer((request, response) => Promise.resolve('foo\n').then(s => response.end(s)) ).listen(8888) Esto funciona, pero cuando cambio la línea .then a una versión más corta: Promise.resolve('foo\n').then(response.end) No termina la respuesta. Debo extrañar algo muy tonto, pero no puedo pensar en qué es.

¿Cuándo debería usar yield y when yield * con Koa.js?

Navegando a través de muestras de koa, documentos y middleware, noté que ambas forms de yield están siendo utilizadas sin ninguna diferencia particular que noté. El caso más extremo está en koa-mount, donde el código de muestra usa el yield next; formulario, y el package en sí mismo usa yield* varias veces. Otros packages ( […]

Exportar una class después de la definición en ES6

// test.js class Test export Test // index.js import {Test} from './test' Esto da como resultado un error de syntax con Unexpected token . ¿Cuál es la forma correcta de exportar una class pnetworkingefinida? EDITAR: Se requiere que la definición de class sea independiente de la export.

Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.