Anotações Javascript
Algumas anoteções sobre meus estudos da linguagem JavaScript.
Variáveis🔗
Não começar nome de uma variável com número, ou colocar espaço. usar o camelCase uma variável Carro é deferente de carro, as letra maiúsculas e minúsculas importam
// definer uma variável
let idade = 20
var nome = 'Caio'
// trocar o valor de uma variável
idade = 24
Constantes🔗
Constantes não poder ter o seu valor mudado
Tipos🔗
String🔗
Number🔗
Undefined🔗
Boolean🔗
Object🔗
let pessoa = {
nome: 'Gilda',
idade: 21,
peso: 65.30,
estaAprovado: true,
sobrenome: undefined
}
pessoa.nome // 'Gilda'
pessoa['idade'] // 21
Class🔗
class Pessoa {
constructor(nome, idade, peso, estaAprovado, sobrenome) {
this.nome = nome
this.idade = idade
this.estaAprovado = estaAprovado
this.sobrenome = sobrenome
}
nomeCompleto() {
return `${this.nome} ${this.sobrenome}`
}
}
let pessoa = new Pessoa('Michely', 21, 65.30, true, 'Silva')
pessoa.nome // 'Michely'
pessoa.sobrenome // 'Silva'
pessoa.nomeCompleto() // 'Michely Silva'
Array🔗
let numeros = [1, 34, 34, 234, 123]
let familia = [true, 45, 'Marília', [123, undefined]]
numeros[3] // 234
familia[3][0] // 123
Operadores🔗
Operadores de Atribuição🔗
Operadores Aritiméticos🔗
| Operador | Função |
|---|---|
| + | soma |
| - | subtração |
| * | multiplicação |
| / | divisão |
| ** | exponênciação |
| % | resto da divisão |
Faz a operação antes ou depois de retornar o valor que já tem. Se estiver antes da variável, realiza antes de retornar. Se estiver depois da variável, realiza depois de retornar.
++ : incremento -- : decremento
let idadeUm = 18
--idadeUm // 17
idadeUm // 17
let idadeDois = 45
idadeDois-- // 45
idadeDois // 44
let idadeTres = 34
++idadeTres // 35
idadeTres // 35
let idadeQuatro = 59
idadeQuatro++ // 59
idadeQuatro // 60
Operadores de Igualdade🔗
Igualdade estrita. Compara os valorese os tipos
Igualdade solta. Compara somente os valores
Operadores Lógicos🔗
e - &&
ou - ||
não - !
Operador Ternário🔗
let mensalidade = 20
// <expressão lógica> ? <se true> : <se false>
let tipo = mensalidade > 30 ? 'premium' : 'comum'
Comparações Não Boleanas🔗
Falsy
- undefined
- null
- 0
- false
- ''
- NaN - not a number
Truthy
- string
- number
- true
- object
- array
Operadores Condicionais🔗
if, else, else if🔗
switch case🔗
let usuario = 'comum'
switch (usuario) {
case 'comum':
console.log('Usuário comum')
break
case 'gerente':
console.log('Usuário gerente')
break
case 'diretor':
console.log('Usuário diretor')
break
default:
console.log('Você estuda aqui?')
}
Laços de Repetição🔗
for🔗
for (let index = 1; index <= 5; index++) {
console.log(`index = ${index}`)
}
// index = 1
// index = 2
// index = 3
// index = 4
// index = 5
for (let numero = 1; numero <= 10; numero++) {
if (! (numero % 2)) {
console.log(`par = ${numero}`)
}
}
// par = 2
// par = 4
// par = 6
// par = 8
// par = 10
for (let numero = 10; numero >= 1; numero--) {
if (! (numero % 2)) {
console.log(`par = ${numero}`)
}
}
// par = 10
// par = 8
// par = 6
// par = 4
// par = 2
while🔗
let numero = 10
while (numero >= 1) {
if (! (numero % 2)) {
console.log(`par = ${numero}`)
}
numero--;
}
// par = 8
// par = 6
// par = 4
// par = 2
do while🔗
// o do...while sempre executa o que estiver dentro do do{} antes de fazer a verificação no while
// ou seja, ele sempreexecuta pelo menos uma vez o comando
let contador = 0
do {
console.log(`Contador ${contador}`);
contador++
} while (contador <= 10)
// Contador 0
// Contador 1
// Contador 2
// Contador 3
// Contador 4
// Contador 5
// Contador 6
// Contador 7
// Contador 8
// Contador 9
// Contador 10
for in🔗
var obj = {a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(`${prop} = ${obj[prop]}`);
}
// "a = 1"
// "b = 2"
// "c = 3"
for of🔗
const array = ['a', 'b', 'c'];
for (const element of array) {
console.log(element);
}
// "a"
// "b"
// "c"
const iterable = [10, 20, 30];
for (let value of iterable) {
value += 1;
console.log(value);
}
// 11
// 21
// 31
Funções🔗
Function🔗
let corSite = 'Azul'
// verbo + substantivo
function resetaCor() {
corSite = ''
}
// com argumentos
function resetaCor2(cor) {
corSite = cor
}
function resetaCor3(cor, tonalidade) {
// corSite = cor + ' ' + tonalidade
corSite = `${cor} ${tonalidade}`
}
resetaCor2('Rosa')
corSite // 'Rosa'
resetaCor3('azul', 'marinho')
corSite // 'azul marinho'
function soma(x, y) {
return x + y
}
function soma(x, y = 3) {
return x + y
}
const soma = function _soma(x, y) {
return x + y
}
const fatorial = function fat(n) { return n < 2 ? 1 : n * fat(n - 1) }
// Rest parameters
function multiply(multiplier, ...args) {
return args.map(x => multiplier * x);
}
Funções aninhadas e closures🔗
function addSquares(a, b) {
function square(x) {
return x * x;
}
return square(a) + square(b);
}
function A(x) {
function B(y) {
function C(z) {
console.log(x + y + z);
}
C(3);
}
B(2);
}
function outside() {
let x = 5;
function inside(y) {
return x * y;
}
return inside;
}
Arrow Function🔗
(x, y) => {
return x + y
}
x => x * x
// Múltiplos parâmetros requer parênteses
(x, y) => x + y
// Parâmetros default são suportados
(x, y=2) => x + y
// Destructuring dentro dos parâmetros são suportadossuportados
([a, b] = [10, 20]) => a + b
({ a, b } = { a: 10, b: 20 }) => a + b
let soma = (x, y) => x + y