CSS
Grid no bootstrap: há a divisão da tela em _______ colunas
12
HTML
Emmet: div3>div3
Qual será o output?
3 divs com 3 divs cada
Javascript
Declarar uma variável no JavaScript sem const ou let tornará ela ____ no escopo
Global
Entre const e let qual delas pode ser sobrescrita?
Let
Javascript
Javascript
let idade (aqui eu ????)
idade = 2 (aqui eu ????)
declarei
atribui
Javascript
Array
const fruits = [“Banana”, “Orange”, “Apple”, “Mango”, “Kiwi”];
fruits.splice(2, 2);
Qual será o output?
Banana, Orange, Kiwi
Javascript
Para que serve o package.json?
Arquivo que contém a descrição e metadados funcionais sobre o projeto (nome, versão etc)
Javascript
O que é NPM? Para que serve?
Node Package Manager, o NPM é um poderoso gerenciador de pacotes utilizado para administrar as bibliotecas e frameworks utilizados em uma aplicação
Javascript
Quando criamos um object no Javascript, o mesmo reserva uma memória (____) e não reserva os dados do objeto mas sim o ________ da memória referente ao objeto.
Diferente quando criamos uma variável que comporta um tipo primitivo. Neste caso o JavaScript cria uma _____
heap
endereço
cópia
Javascript
Qual a diferença de null e undefined
null = ausência intencional
undefined = não declarado/não existe
Javascript
Assessores javascript
O ___ permite buscar informação de um objeto, mas não possibilita editar/atribuir valores
get
Javascript
No seguinte código, quais membros do objeto pessoa são propriedades e quais são métodos?
~~~
var pessoa = {
nome: [‘Bob’, ‘Smith’],
idade: 32,
sexo: ‘masculino’,
interesses: [‘música’, ‘esquiar’],
bio: function() {
(…)
}
nome, idade, sexo e interesses são propriedades (dados)
bio e saudacao são métodos (funções)
Javascript
Temos os dois objetos a seguir:
var produto1 = {
nome: "Blusa",
preco: 120, calculaDesconto: function(){
//10% de desconto
return this.preco * 0.1;
}
};
var produto2 = {
nome: "Calça",
preco: 300,
calculaDesconto: function(){
//10% de desconto
return this.preco * 0.1;
}
}; produto1.calculaDesconto(); Qual será o output?
produto2.calculaDesconto(); Qual será o output?
12 e 30
1) Como poderíamos resumir o código dos objetos a seguir usando construtores?
2) Como criaríamos efetivamente estes produtos?
3) Como seria a chamada do método calculaDesconto()?
Temos os dois objetos a seguir:
var produto1 = {
nome: "Blusa";
preco: 120;
};
var produto2 = {
nome: "Calça";
preco: 300; Nova maneira (utilizando class):
1)
class Produto {
constructor(nomeEscolhido, precoEscolhido) {
this.nome = nomeEscolhido;
this.preco = precoEscolhido;
}
2)
var produto1 = new Produto(‘Blusa’, 120);
var produto2 = new Produto(‘Calça’, 300);
Qual a função do super no código abaixo?
class class Pessoa {
constructor(nome, idade, sexo) {
this.nome = nome;
this.idade = idade;
this.sexo = sexo;
}
}
class Matheus extends Pessoa {
constructor(nomeDiferente, algumaIdade, meuSobrenome) {
super(nomeDiferente, algumaIdade);
this.sobrenome = meuSobrenome;
}
}Ele serve para a classe Matheus (filha) aproveitar propriedades da classe mãe (Pessoa) e evitar repetição de código.
Para que serve a palavra extends no código abaixo?
class Square extends Polygon {
constructor(length) {
}
}Ela possibilita extender as propriedades da classe mãe (Square) em um objeto filho.
Qual o problema com o código a seguir?
class Cliente {
nome;
cpf;
}
new Cliente("Ricardo", 11122233309);Sem declarar uma variável para a nova classe “Cliente” eu não consigo acessar posteriormente
O correto seria (const ou let):
const cliente1 = new Cliente("Ricardo", 11122233309);
Quando criamos um objeto estamos (?)ando uma classe.
A classe funciona como um (?), no qual o objeto é criado (bolo criado a partir de uma forma).
instanciando
molde
Qual será o output da expressão a seguir?
{let a = 2;
console.log(a -= 3);
}
{let a = 2;
console.log(a += 3);
}Console 1: -1
Console 2: 5
-= é sinal de atribuição, serve para diminuir e += soma
Atenção: sem as chaves o VS Code dá erro, pois precisamos encapular a variável em bloco
Atributo privado:
class ContaCorrente {
agencia;
saldo;
}
contaCorrenteRicardo.#saldo = 0;Qual o output?
SyntaxError: Private field ‘#saldo’ must be declared in an enclosing class
Quando colocamos cerquilha, o JS entende que é privado
Atributos privados (usando cerquilha)
Qual será o output do console.log?
class ContaCorrente {
agencia;
#saldo = 0;
}
const contaCorrenteRicardo = new ContaCorrente();
contaCorrenteRicardo.agencia = 1001;
console.log(contaCorrenteRicardo);Output:
ContaCorrente { agencia: 1001 }O atributo saldo fica privado quando colocamos cerquilha, somente aparece agencia. Essa síntaxe não é adotada ainda na linguagem, então é bom evitar.
Atributos privados usando underline _
class ContaCorrente {
agencia;
_saldo = 0; // Precisamos estipular um valor
sacar (valor) {
if (this._saldo >= valor) {
this._saldo -= valor;
}
}
depositar(valor) {
if (valor > 0) {
this._saldo += valor;
}
}
}A convenção é que atributos com underline não devem ser acessados fora da (?), apesar de conseguirmos modificá-los (nesse caso só modificamos usando os métodos sacar e depositar, que estão presentes na (?)
Classe (2)
Qual o problema com o undefined do output?
Há uma maneira de corrigir?
class Cliente{
nome;
cpf;
}
class ContaCorrente {
agencia;
_saldo = 0;
sacar (valor) {
if (this._saldo >= valor) {
this._saldo -= valor;
}
}
depositar(valor) {
if (valor > 0) {
this._saldo += valor;
}
} }
const contaCorrenteRicardo = new ContaCorrente;
const valorSacado = contaCorrenteRicardo.sacar(50);
console.log(valorSacado);Output: undefined
O problema é que ao usarmos o símbolo de atribuição = no “const valorSacado = contaCorrenteRicardo.sacar(50);”
Estamos informando que o valorSacado será igual ao valor do método/função “sacar” que, no presente caso, não “devolve” qualquer valor ao ser chamado.
Utilizamos o return:
sacar (valor) {
if (this._saldo >= valor) {
this._saldo -= valor;
return valor;
}
}Técnica de (?): o “this._saldo += valor” será executado?
class Cliente{
nome;
cpf;
}
class ContaCorrente {
agencia;
_saldo = 0;
sacar (valor) {
if (this._saldo >= valor) {
this._saldo -= valor;
return valor;
}
}
depositar(valor) {
if (valor <= 0) {
return;
}
this._saldo += valor;
}
}
const contaCorrenteRicardo = new ContaCorrente;
const deposito = contaCorrenteRicardo.depositar(-50);
console.log(contaCorrenteRicardo._saldo);Early return
Facilita a legibilidade do código, já trazendo o que eu não quero (depósito zero ou negativo)
E não, o return interrompe a execução do this._saldo += saldo