Na programação, qual a diferença entre números declarados diretamente ou entre aspas ou crases? Ex: 5, '5', "5" e `5`. [JS]
Entre as diversas linguagens de programação podem haver pequenas diferenças quanto a isso, mas a um grosso modo (tentando generalizar) o comportamento é basicamente o seguinte.
Exemplificando com a linguagem Javascript
var a = 5;
var b = '5';
var c = "5";
var d = `5`;
No código acima, declaramos 4 variáveis a, b, c e d.
A variável a recebe o valor 5, ou seja, ela recebe o valor no tipo int (inteiro). Sendo assim, com valor numérico pode-se executar cálculos, incrementações, etc...
A variável b recebe a string '5' com aspas simples. Isso significa que o caractere 5 é expresso de forma literal como texto, da maneira como foi digitado.
A variável c recebe a string "5" com aspas duplas. No caso dessa linguagem se comporta basicamente como a variável b.
Em outras linguagens, como o PHP pode se comportar como string dinâmica, como vemos a seguir no caso de crases no javascript.
A variável d recebe também a string `5` mas entre crases. Na atribuição (declaração de variável) ela se comporta de mesmo modo que b e c.
* No javascript, strings entre crases são dinâmicas, se pode interagir com variáveis e operações. Ex:
var nome = 'Leonardo';
var texto = `Meu nome é ${nome}.`;
console.log(texto);
Neste exemplo, verá no console o texto Meu nome é Leonardo. devido a interatividade da declaração entre crases e a sinalização com sifrão e chaves que ali há um conteúdo dinâmico.
Se usar o mesmo em aspas simples ou duplas...
var nome = 'Leonardo';
var texto = 'Meu nome é ${nome}.';
console.log(texto);
Vera no console o texto literal Meu nome é ${nome}. pois não há dinamicidade neste caso e dependendo da sua IDE de desenvolvimento (VS Code por ex.) verá um aviso de que a variável nome não está sendo usada.
Voltando ao caso com números, vemos a seguir como se comporta.
var a = 5;
var b = 5;
console.log(a+b);
Temos no console o valor 10 devido ao sinal de mais (+) realizar a soma dos dois valores declarados como inteiros.
Diferente ocorre no próximo exemplo.
var a = '5';
var b = '5';
console.log(a+b);
Vemos no console o texto 55. Devido a declaração entre aspas dizendo que as variáveis contém o texto 5 o sinal de mais (+) se comporta como a instrução de concatenação juntando as duas strings.