CoffeeScript - Variáveis
Variáveis nada mais são do que recipientes nomeados. Você pode colocar dados nesses contêineres e, em seguida, referir-se aos dados usando o nome de seu contêiner.
Variáveis CoffeeScript
Em JavaScript, antes de usar uma variável, precisamos declará-la e inicializá-la (atribuir valor). Ao contrário do JavaScript, ao criar uma variável no CoffeeScript, não há necessidade de declará-la usando ovarpalavra-chave. Simplesmente criamos uma variável apenas atribuindo um valor a um literal, conforme mostrado abaixo.
name = variable name
Exemplo
No seguinte código CoffeeScript, definimos duas variáveis name e age, de tipos de dados string e número, respectivamente. Salve-o em um arquivo com o nomevariable_example.coffee.
name = "Javed"
age = 25
Compiling the code
Compile o código CoffeeScript acima executando o seguinte comando no prompt de comando.
c:\> compile -c variable_example.coffee
Na compilação, um arquivo JavaScript chamado variable_example.jsserá gerado com o seguinte conteúdo. Aqui você pode observar que o compilador declarou as variáveis (idade e nome) usando ovar palavra-chave em nosso nome.
// Generated by CoffeeScript 1.10.0
(function() {
var age, name;
name = "Javed";
age = 25;
}).call(this);
Escopo Variável
O escopo de uma variável é a região de seu programa na qual ela é definida. As variáveis JavaScript e CoffeeScript têm apenas dois escopos.
Global Variables - Uma variável global tem escopo global, o que significa que pode ser usada em qualquer lugar em seu código JavaScript.
Local Variables- Uma variável local será visível apenas dentro de uma função onde está definida. Os parâmetros da função são sempre locais para essa função.
O problema com variáveis em JavaScript
Em JavaScript, sempre que definimos uma variável sem usar o varpalavra-chave, é criado com escopo global. Isso causa muitos problemas. Considere o seguinte exemplo -
<script type = "text/javascript">
var i = 10;
document.write("The value of global variable i is "+ i);
document.write("<br>");
test();
function test() {
i = 20;
document.write("The value of local variable i is "+i);
document.write("<br>");
}
document.write("The value of global variable i is "+i);
</script>
Na execução, o JavaScript acima fornece a seguinte saída -
The value of global variable i is 10
The value of local variable i is 20
The value of global variable i is 20
No exemplo acima, criamos uma variável chamada ino espaço global e atribuiu o valor 10 a ele. E dentro da função, na tentativa de criar uma variável local com o mesmo nome, declaramos como i = 20 ; sem a palavra-chave var. Desde que perdemos ovar palavra-chave, o valor da variável global i é reatribuído a 20.
Por este motivo, é recomendado declarar variáveis usando o var palavra-chave.
Escopo variável em CoffeeScript
Sempre que compilamos um arquivo CoffeeScript, o compilador CoffeeScript cria uma função anônima e, dentro dessa função, ele transcompila o código CoffeeScript em JavaScript linha por linha. (Se quisermos, podemos remover o wrapper de função de nível superior usando o-b ou --bare opção do comando de compilação) Cada variável que criamos é declarada usando o var palavra-chave dentro da função anônima e, portanto, por padrão, cada variável é local no CoffeeScript.
(function() {
var age, name;
name = "javed";
age = 20;
}).call(this);
De qualquer forma, se quisermos, podemos declarar uma variável com namespace global. Podemos fazer isso explicitamente, conforme mostrado abaixo.
obj = this
obj.age = 30
Nomes de variáveis CoffeeScript (literais)
Ao nomear suas variáveis no CoffeeScript, mantenha as seguintes regras em mente.
Você não deve usar nenhuma das palavras-chave reservadas do CoffeeScript como um nome de variável. Essas palavras-chave são mencionadas na próxima seção. Por exemplo, os nomes das variáveis break ou Boolean não são válidos.
Os nomes das variáveis CoffeeScript não devem começar com um numeral (0-9). Eles devem começar com uma letra ou um caractere de sublinhado. Por exemplo, 123test é um nome de variável inválido, mas _123test é válido.
Os nomes das variáveis CoffeeScript diferenciam maiúsculas de minúsculas. Por exemplo,Name e name são duas variáveis diferentes.