Ao declarar variáveis, o uso de palavras-chave diferentes terá efeitos diferentes:
- Use
var
palavras-chave:
var x = 10;
var x = 20; // 可以重新声明
x = 30; // 可以重新赋值
- Use
let
palavras-chave:
let y = 10;
let y = 20; // 重复声明会报错
y = 30; // 可以重新赋值
- Use
const
palavras-chave:
const z = 10;
const z = 20; // 重复声明会报错
z = 30; // 赋值会报错,常量值不能修改
var
Variáveis declaradas usando a palavra-chave podem ser declaradas e atribuídas diversas vezes.- Variáveis declaradas usando
let
palavras-chave não podem ser declaradas repetidamente, mas podem ser reatribuídas. - Variáveis declaradas usando
const
palavras-chave não podem ser declaradas repetidamente e não podem ser reatribuídas, e são consideradas constantes.
-
var
: É uma palavra-chave no ES5 para declarar variáveis com escopo em nível de função. Uma variável declarada usandovar
pode ser acessada dentro da função na qual é declarada, bem como fora da função. Se uma variável declarada for usada dentro de uma funçãovar
, ela se tornará uma variável local dessa função. Sevar
uma variável declarada for usada fora de uma função, ela se tornará uma variável global.var
Variáveis declaradas podem ser declaradas múltiplas vezes e nenhum erro será relatado quando usadas antes da declaração. -
let
: é uma nova palavra-chave introduzida no ES6 e possui escopo em nível de bloco. O escopo das variáveis declaradas usandolet
é limitado ao bloco atual, comoif
blocos de instruções,for
blocos de loop, blocos de funções, etc.let
Variáveis declaradas não podem ser declaradas repetidamente e um erro será relatado se usadas antes da declaração. -
const
: também é uma nova palavra-chave introduzida no ES6 para declarar constantes.const
O valor de uma variável declarada não pode ser modificado e, uma vez atribuído, não pode ser atribuído novamente.const
Variáveis declaradas também possuem escopo em nível de bloco e declarações repetidas não são permitidas.
val
Não é uma palavra-chave em JavaScript, é uma palavra-chave em Kotlin.
Para concluir:
var
Possui escopo em nível de função, permitindo declarações repetidas.let
Possui escopo em nível de bloco e não permite declarações repetidas.const
Usado para declarar constantes, com escopo em nível de bloco, não sendo permitidas declarações e modificações repetidas.