javascript - entre - const vs let cuando se requieren llamadas
let javascript w3schools (4)
Const de prueba de rendimiento vs uso let
en Node.js 6.10:
require(''do-you-even-bench'')([
{ name: ''test 1'', fn: function() {
const path = require(''path'');
}
},
{ name: ''test 2'', fn: function() {
let path = require(''path'');
}
}
]);
prueba 1 .... 2,547,746.72 op / s
prueba 2 .... 2,570,044.33 op / s
Como io.js ahora es compatible con ES6 , finalmente puede usar el const
y let
palabras clave. Obviamente, let
es el sucesor de var
, solo con algunos superpoderes.
Pero, ¿qué hay de const
? Sé, por supuesto, qué significa "constante", pero me preguntaba cuándo usarlo (con respecto a las mejores prácticas).
Por ejemplo, si creo un módulo que requiere otro módulo, podría escribir:
''use strict'';
const util = require(''util'');
const foo = function () {
// Do something with util
};
module.exports = foo;
Básicamente, he reemplazado cada aparición de var
con const
. En términos generales, creo que esto está bien, pero si sigo este patrón, me queda mucho más uso de const
que de let
, ya que la mayoría de las variables no son "variables" en un sentido literal.
¿Es este buen estilo? ¿Debería ir por let
? ¿Cuándo debería elegir const
over let
?
Tengo la misma sensación que estás describiendo. Un gran porcentaje de las variables declaradas en mi código tienden a ser constante, incluso objetos y matrices. Puede declarar objetos y matrices constantes y aún así poder modificarlos:
const arr = [];
arr.push(1);
arr;
// [ 1 ]
const obj = {};
obj.a = 1;
obj;
// { a: 1 }
Los módulos AFAIK ES6 no requieren declaraciones de variables al importar, y sospecho que io.js se moverá a los módulos ES6 en un futuro próximo .
Creo que esta es una elección personal. Siempre usaría const cuando necesite módulos y para variables locales del módulo ( foo
en su ejemplo). Para el resto de variables, use const de manera apropiada, pero nunca se enoje y use const en todas partes. No conozco el rendimiento entre let y const así que no puedo decir si es mejor usar const siempre que sea posible.
const
puede usar normalmente cuando no quieres tu programa
asignar algo a la variable
"use strict"; const a = 1; a = 2;
producirá
TypeError: Assignment to constant variable.
.para usar la variable sin inicializar explícitamente.
"use strict"; const a;
producirá
SyntaxError: Unexpected token ;
En pocas palabras, yo diría,
use
const
siempre que quiera que algunas variables no se modifiquenuse
let
si quiere el opuesto exacto deconst
use
var
, si desea ser compatible con las implementaciones de ES5 o si desea un alcance de nivel de módulo / función.
Use let
solo cuando necesite un nivel de ámbito de bloque; de lo contrario, usar let
o var
no supondría ninguna diferencia.
DEJA V / S CONST
Diferencia
- La gran diferencia entre let y const es que intentar asignar una constante previamente definida generará un error en los modos estricto y no estricto
Semejanza
- Similar a let, se genera un error cada vez que se realiza una declaración const con un identificador para una variable ya definida en el mismo ámbito.
Por ejemplo:
var message = "Hello!";
let age = 25;
// Each of these would cause an error given the previous declarations
const message = "Goodbye!";
const age = 30;
- Las constantes también son declaraciones a nivel de bloque, similares a let. Eso significa que las constantes se destruyen una vez que la ejecución sale del bloque en el que se declararon y las declaraciones no se alzan a la parte superior del bloque.