Declaração de variáveis

Javascript é uma linguagem fracamente tipada

let number = 8
const name = 'John'
var profession = 'Chef'

number = 'Hello'      // é possível, mas não é recomendado

Javascript trata tudo por referência, então:

const minhaVariavel = {}

minhaVariavel = outraVariavel           // erro
minhaVariavel = {novaPropriedade: 1}    // erro
minhaVariavel.novaPropriedade = 1       // tudo certo! eu não mudei a referência, 
																				//apenas o valor

Arrays

Declaração

let emptyArray = []
let numberArray = [2, 5, 6, 1, 8]

Spread syntax

let arr1 = [1, 2, 3]
let arr2 = ['a', 'b', 'c']
let arr3 = [arr1, arr2]
let arr4 = [...arr1, ...arr2]

console.log(arr3) // [[1, 2, 3], ['a', 'b', 'c']]
console.log(arr4) // [1, 2, 3, 'a', 'b', 'c']

Funções embutidas

Funções em que o array resultante não é retornado

Push

let numeros = [1, 2, 3];
numeros.push(4);

console.log(numeros); // [1, 2, 3, 4]

numeros.push(5, 6, 7);

console.log(numeros); // [1, 2, 3, 4, 5, 6, 7]

Pop

let numeros = [1, 2, 3, 4, 5, 6, 7]
numeros.pop()

console.log(numeros); // [1, 2, 3, 4, 5, 6]

Shift

let numeros = [1, 2, 3, 4, 5, 6, 7]
numeros.shift()

console.log(numeros); // [2, 3, 4, 5, 6, 7]

Unshift

let numeros = [1, 2];

numeros.unshift(0);
console.log(numeros); // [0, 1, 2]

numeros.unshift(-2, -1);
console.log(numeros); // [-2, -1, 0, 1, 2]

numeros.unshift([-3]);
console.log(numeros); // [[-3], -2, -1, 0, 1, 2]