Diferença de definição:
Var e let são geralmente usados para definir variáveis, e const é usado para definir constantes
Diferença no valor inicial
Var e let não precisam fornecer o valor inicial (o padrão é indefinido se o valor não for fornecido), e const define uma constante, e o valor subsequente não é alterado, então o valor deve ser fornecido quando usado
A diferença de escopo:
-
As variáveis definidas por var não têm conceito de blocos e podem ser acessadas entre blocos, não entre funções.
-
As variáveis definidas por let só podem ser acessadas no escopo do bloco (o escopo do bloco é {}) e não podem ser acessadas através de blocos ou funções.
-
const só pode ser acessado no escopo do bloco e não pode ser modificado. Aqui está uma coisa a ser observada:
a constante definida por const não pode ser atribuída e, no caso a seguir, const define um objeto, mas as propriedades podem ser modificadas:
const obj = { name: 'a', age: 18 };
obj.name = 'b'; // 这里是可以改变obj属性的
console.log(obj);
const obj = { name: 'a', age: 18 };
obj = {}; // 直接赋值操作会报错,无法被指派给obj,因为它是常量