Lendo a documentação online, estou ficando confuso sobre como definir corretamente várias variáveis JavaScript em uma única linha.
Se eu quiser condensar o código a seguir, qual é a maneira "estrita" adequada do JavaScript para definir várias variáveis javascript em uma única linha?
var a = 0;
var b = 0;
É isso:
var a = b = 0;
ou
var a = var b = 0;
etc ...
javascript
HeatherK
fonte
fonte
var $cls = my.namespace.Foo = function(args){ ... }
Respostas:
Você quer contar com vírgulas porque, se contar com a construção de atribuições múltiplas, vai dar um tiro no próprio pé em um ponto ou outro.
Um exemplo seria:
Todos eles se referem ao mesmo objeto na memória, eles não são "únicos", pois sempre que você faz uma referência a um objeto (array, objeto literal, função) é passado por referência e não por valor. Portanto, se você alterar apenas uma dessas variáveis e quiser que elas ajam individualmente, não obterá o que deseja porque elas não são objetos individuais.
Também há uma desvantagem na atribuição múltipla, em que as variáveis secundárias se tornam globais e você não quer vazar para o namespace global.
É melhor usar apenas vírgulas e de preferência com muitos espaços em branco para que seja legível:
fonte
ReferenceError
exceção ... IMO, eles devem ser evitados ...Usando o es6 ou nó do Javascript, você pode fazer o seguinte:
E se você quiser imprimir facilmente várias variáveis em uma única linha, basta fazer o seguinte:
Isso é semelhante à resposta de @alex gray aqui, mas este exemplo está em Javascript em vez de CoffeeScript.
Observe que isso usa a atribuição de desestruturação de array do Javascript
fonte
console.log(a,b,c,d)
neste caso? é mais curto e dá a mesma saídaNão há como fazer isso em uma linha com atribuição como valor.
torna b global. Uma maneira correta (sem vazar variáveis) é ligeiramente mais longa:
que é útil no caso:
fonte
Por que não fazê-lo em duas linhas?
O motivo, é preservar o escopo local nas declarações de variáveis, como este:
levará às declarações implícitas de
b
,c
ed
sobre o âmbito janela.fonte
Aqui está o novo método ES6 de declaração de múltiplas variáveis em uma linha:
* Seu nome de variável e índice de objeto precisam ser os mesmos
fonte
let { a, b } = { a: 0, b: 0 }
.Especificamente para o que o OP pediu, se você deseja inicializar N variáveis com o mesmo valor (por exemplo
0
), você pode usar a desestruturação de array e Array.fill para atribuir às variáveis um array de N0
s:fonte
note que você só pode fazer isso com números e strings
você poderia fazer...
fonte