Buscar

Analise as funções abaixo e selecione a alternativa em que todas são consideradas Factory

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

##### Analise as funções abaixo e selecione a alternativa em que todas são consideradas Factory: I - function exibeNome(nome) { console.log(nome); } II - function Pessoa(nome) { this.nome = nome; } III - function Pessoa(nome) { return { nome }; } IV - function recuperaDadosFormulario(formulario) { if (!formulario) { return {}; } const dados = { nome: formulario.nome, idade: formulario.idade }; return dados; } V - function setNome(nome) { this.nome = nome; }
- III e IV.
##### De acordo com o código abaixo, selecione a alternativa em que todas as comparações retornam true: const name = 'Foo'; const lastName = String('Bar'); I - name.constructor === lastName.constructor II - name.prototype === String.prototype III - lastName.__proto__ === String.prototype IV - name.__proto__.split === lastName.__proto__.split
I, III e IV.
##### O que são Design Patterns:
Design Patterns ou padrões de projetos são soluções generalistas para problemas recorrentes durante o desenvolvimento de um software. Não se trata de um framework ou um código pronto, mas de uma definição de alto nível de como um problema comum pode ser solucionado.
##### De acordo com o código abaixo, as alternativas corretas são: function Pessoa(nome, idade) { this.nome = nome; this.idade = idade; return { nome, idade: 20, falar() { console.log('objeto falar'); } } } Pessoa.prototype.falar = function() { console.log('prototype falar'); }; const pessoa = new Pessoa('Foo', 30); Com base no código acima, observe as afirmativas abaixo: I - O retorno será um objeto "{ nome: 'Foo', idade: 20 }". Pois mesmo chamando a função Pessoa com a palavra-chave new, a função possui retorno explicito. II - A expressão "pessoa.constructor === Pessoa" retornará true. Pois como utilizamos a palavra-chave new, sempre será retornado uma instância de pessoa, mesmo quando a função possui retorno explícito. III - A expressão "pessoa.constructor === Object" retornará true. Pois o retorno da função é um objeto. IV - A expressão "pessoa.__proto__.falar === undefined" retornará true. Pois como há retorno explícito de um objeto na função Pessoa, suas definições não são passadas a esse objeto. V - Executando a função "pessoa.falar()" será logado no console o texto 'prototype falar'.
I, III e IV.
##### Na versão 12 do nodejs é possível que uma classe possua propriedades privadas aplicando um prefixo "#" no nome de seus atributos e métodos. Analise a classe abaixo e selecione a informação que possui o que será exibido pelos "console.log" respectivamente: class Pessoa { #nome = ''; constructor(nome) { this.#nome = nome; } get nome() { return `Seu nome é: ${this.#nome}.`; } set nome(novoNome) { this.#nome = novoNome; } } const pessoa = new Pessoa(); console.log(pessoa); console.log(pessoa.nome); pessoa.nome = 'Foo'; console.log(pessoa.nome);
"Pessoa {#nome: "Foo"}", "Seu nome é: undefined." e "Seu nome é: Foo."
##### Analise a classe abaixo e seleciona a alternativa em que todas as afirmações são corretas: class ID { static #contador = 0; static get contador() { return this.#contador; } static incrementaContador() { return ++this.#contador; } } class Cliente { #id = 0; constructor() { this.#id = ID.incrementaContador(); } get id() { return this.#id; } } const c1 = new Cliente(); console.log(`Contador atual: ${ID.contador}.`); const c2 = new Cliente(); const c3 = new Cliente(); console.log(`Contador atual: ${ID.contador}.`); As afirmativas abaixo são: I - É possível chamar o método "incrementaContador" sem instanciar a classe ID pois o método possui a palavra-chave static. II - A saídas dos console.log são respectivamente: "Contador atual: 1." e "Contador atual: 3.". III - É possível instanciar a classe ID mas sua instancia não herdará os atributos/métodos com a palavra-chave static. IV - Quando uma função possui todos os atributos/métodos static não é possível chamá-la com a palavra-chave new. V - Métodos que possuem a palavra-chave static, só podem ser chamados por outros métodos static.
I, II e III.
##### Analise o código abaixo: function Conta() {} Conta.prototype.rendimento = 0; Conta.prototype.depositar = function() {} Conta.prototype.retirar = function() {} Conta.prototype.exibirSaldo = function() { return `O saldo da conta é: ${this.saldo}.`; } function ContaPoupanca() { this.exibirSaldo = function() { return 'Operação não disponível'; } } ContaPoupanca.prototype.rendimento = 0.03; ContaPoupanca.prototype = Object.create(Conta.prototype); const contaPoupanca = new ContaPoupanca(); Agora avalie as afirmativas abaixo e assinale a alternativa que apresenta as corretas: I - A variável "contaPoupanca" será uma instância de ContaPoupanca, ou seja, a expressão "contaPoupanca instanceof ContaPoupanca" retornará true. II - A variável "contaPoupanca" possuíra os métodos "depositar", "retirar" e "exibirSaldo". Mas a implementação da função "exibirSaldo" não será sobrescrita, pois não é possível sobrescrever propriedades de um prototype. III - O retorno da função "contaPoupanca.exibirSaldo()" será: "O saldo da conta é: undefined.". IV - O valor do atributo "rendimento" da variável "contaPoupanca" será 0.3. V - O retorno da função "contaPoupanca.__proto__.exibirSaldo()" será: "O saldo da conta é: undefined.".
I e V
##### O objetivo do Pattern Singleton é:
Criar uma única instância de uma função construtora e retorná-la toda vez em que for necessário utilizá-la.
##### Analisando o código abaixo, quais serão as saídas dos console.log: function Pessoa(nome) { this.nome = nome; } function PessoaFisica(nome, cpf) { Pessoa.call(this, nome); this.cpf = cpf; } function PessoaJuridica(nome, cnpj) { Pessoa(nome); this.cnpj = cnpj; } const pessoaFisica = new PessoaFisica('Foo', '123.456.670-0'); const pessoaJuridica = new PessoaJuridica('Bar', '12.345.678/9012-34'); console.log(pessoaFisica); console.log(pessoaJuridica);
'PessoaFisica {nome: "Foo", cpf: "123.456.670-0"}' e 'PessoaJuridica {cnpj: "12.345.678/9012-34"}'.
##### No código abaixo as funções "adicionaUsuarioLogado" e "executaSeUsuarioEstaLogado" são exemplos de qual pattern: function adicionaUsuarioLogado(fn) { const usuarioLogado = { nome: 'Foo', sobrenome: 'Bar' }; fn(usuarioLogado); } function executaSeUsuarioEstaLogado(usuarioLogado, fn) { if (!usuarioLogado) { console.log('Usuário não está logado.'); return; } fn(); } function notificaUsuarioLogado(usuarioLogado) { console.log(`Bem-vindo usuário ${usuarioLogado.nome}!`); } adicionaUsuarioLogado( usuarioLogado => executaSeUsuarioEstaLogado(usuarioLogado, () => { notificaUsuarioLogado(usuarioLogado); }) );
Decorator.
##### Analise o código abaixo e assinale a alternativa que possui o valor da variável "colaboradoresComSalario": const colaboradores = [ { nome: "Cris", horasTrabalhadas: 220 }, { nome: "Rebeca", horasTrabalhadas: 210 } ]; function adicionaSalario(colaborador) { const salario = colaborador.horasTrabalhadas * 50; colaborador.salario = salario; return { salario: salario }; } const colaboradoresComSalario = colaboradores.map(adicionaSalario); console.log(colaboradoresComSalario);
[{salario: 11000}, {salario: 10500}]
##### Analise o código abaixo e selecione a alternativa que possui o valor do array frutas após a execução das funções sort e reverse: const frutas = ["amora", "laranja", "melancia", "acerola"]; frutas.sort(); frutas.reverse();
["melancia", "laranja", "amora", "acerola"]
##### Analise o código abaixo e assinale a alternativa que representa os valores corretos que serão exibidos nos console.log respectivamente: const alunos = [ { nome: "Cris", nota: 10 }, { nome: "Alexandre", nota: 7 }, { nome: "Pablo", nota: 4 } ]; function alunoAprovado(aluno) { return aluno.nota >= 7; } console.log(alunos.filter(alunoAprovado)); console.log(alunos.some(alunoAprovado)); console.log(alunos.every(alunoAprovado));
[{ nome: "Cris", nota: 10 }, { nome: "Alexandre", nota: 7 }], true,false
##### Analise o código abaixo e selecione a alternativa que possui as formas possíveis de se remover o item "acerola" alterando o array "frutas": const frutas = ["melancia", "laranja", "acerola"]; I - frutas.shift(); II - frutas.pop(); III - frutas.splice(2, 1); IV - frutas.slice(2, 1); V - frutas.unshift();
II e III.
##### Qual alternativa representa a forma correta de adicionar a fruta "amora" após a fruta "melancia" e removendo as frutas "abacaxi" e "caju": const frutas = ["maracujá", "melancia", "abacaxi", "caju"]; // resultado esperado: ["maracujá", "melancia", "amora"];
frutas.splice(2, 2, "amora");
##### Assinale a alternativa que possui o valor retornado pela função flat: const frutas = ["amora", ["laranja", ["melancia"], "acerola"]]; console.log(frutas.flat(2));
["amora", "laranja", "melancia", "acerola"]
##### Analise o código abaixo e assinale a alternativa que representa os valores corretos que serão exibidos no console.log respectivamente: const pessoas = ["Cris", "Alexandre", "Pablo", "Cris"]; console.log(pessoas.indexOf("Cris")); console.log(pessoas.findIndex(nome => nome === "Cris")); console.log(pessoas.lastIndexOf("Cris")); console.log(pessoas.find(nome => nome === "Cris"));
0, 0, 3, "Cris"
##### De acordo com o código abaixo, o que será exibido no console.log: const person = ["Cris"]; person.push("James", "Jenny"); person.push("John"); console.log(person);
["Cris", "James", "Jenny", "John"]
##### Assinale a alternativa que possui todas as formas possíveis de criar um array em que seu primeiro elemento possua o valor 2 (tipo int): I - [2]; II - Array.from(2); III - Array.of(2); IV - Array(2); V - new Array(2);
I e III.
##### Analise o código abaixo e assinale a alternativa que representa os valores corretos que serão exibidos nos console.log respectivamente: const familiaPai = ["Avó Zeca", "Avô Aroldo"]; const familiaMae = ["Avô Carlos", "Primo João Paulo"]; const familiaFilho = familiaPai.concat(familiaMae); console.log(familiaPai); console.log(familiaMae); console.log(familiaFilho);
["Avó Zeca", "Avô Aroldo"], ["Avô Carlos", "Primo João Paulo"] e ["Avó Zeca", "Avô Aroldo", "Avô Carlos", "Primo João Paulo"]
------------------------
##### Qual a utilidade dos métodos HTTP na arquitetura REST?
REST utiliza os métodos HTTP para representar a operação a ser realizada em um determinado recurso.
##### Sobre WSDL é correto afirmar:
WSDL é utilizado para descrever um serviço web SOAP.
##### Qual a estrutura de um SOAP Message?
SOAP Envelope -> SOAP Header -> SOAP Body
##### Dado as afirmações abaixo sobre SOAP, selecione a alternativa correta. I.	SOAP é um protocolo baseado em troca de mensagens XML. II.	SOAP pode ser usado somente sob o protocolo HTTP. III.	SOAP permite integrações independente de plataforma e software. IV.	SOAP permite troca de mensagens por XML e JSON.
Somente alternativa I e III estão corretas.

Outros materiais