Please enable JavaScript.
Coggle requires JavaScript to display documents.
JavaScript & Node Interview Topics (Funções (Funções declaradas - Tem…
JavaScript & Node Interview Topics
Variáveis
5 tipos:
string
number
boolean
object
function
3 Tipos de objeto:
Object
Date
Array
4 Tipos sem valor:
null
undefined
undeclared
NaN
Tipagem fraca e multabildade
Type coercion - Processo de conversão do tipo de valor em segundo plano para tentar e fazer funcionar uma operação
Errors, Exceptions e Warnings
Strict mode - Transforma sintaxe ruim em erros reais, mais fácil de escrever JavaScript seguro e precisa ser declarado no inicio do código
3 Tipos de erros:
erro do sistema - Problema com o sistema ou dispositivos externos com os quais o programa está interagindo
erro do programador - Contém sintaxe incorreta ou lógica defeituosa
erro do usuário - O usuário inseriu dados incorretamente que o programa não consegue manipular
Linting (s JS Lint, JS Hint, e ES Lint) - Testador de qualidade de código
Storage
localStorage - Chave, valor e sem data de validade
sessionStorage - Chave, valor e para uma sessão
JavaScript Style Guide, coding Conventions e best pratices
Versões
Edições do ECMAScript:
1997 - ECMAScript 1 - Primeira edição
1998 - ECMAScript 2 - Somente mudanças editoriais
1999 - ECMAScript 3 - Adicionado expressões regulares e try/catch
1999 - ECMAScript 4 - Nunca foi lançado
2009 - ECMAScript 5 - Adicionado "strict mode" e suporte JSON
2011- ECMAScript 5.1 - Alterações editoriais
2015 - ECMAScript 6 - Adicionado classes e modules
2016 - ECMAScript 7 - Adicionado operador exponencial (**) e Array.prototype.includes
JSON
JavaScript Object Notation
Objetos
Prototype - São usadas para adicionar atributos e métodos de fora do objeto, é o objeto que é usado para criar
proto
quando você cria um objeto como novo
proto
- É o objeto real que é usado na cadeia de pesquisa para resolver métodos, é propriedade interna de um objeto, apontando para o seu protótipo
Prototype chain - O valor do prototype definido por ser modificado posteriormente
Funções
Funções declaradas - Tem um nome
Funções anônimas - Não tem um nome
Funções expressas - São passadas como valor de uma variável
Auto invocação ou IIFE - São executadas automaticamente, pode ser usado para incluir um bloco de código dentro de seu próprio escopo privado
Call, Apply ou Bind - Métodos que toda função possuem
Call - Altera o valor this sendo o primeiro parâmetro e os demais parâmetros são da função
Apply - Iqual o call porém passa um array no parâmetros da função
Bind - Não executa a função, mas retorna uma outra, altera o this ou alterar o número de parâmetros de uma função
Closures - Funções definidas dentro de um scopo que preserva seu valor. Pode ser implicito com eventloop ou explicito
Recursiva - Uma função que chama ela mesma
Funções de ordem superior - Funções que operam em outras funções
Map - transforma um array aplicando uma função para todos os elementos e constrói um novo array
Filter - Constrói um novo array com apenas os elementos que passaram no teste
Reduce - calcular todos elementos e transformá-los em apenas um
Funções objetos de primeira classe - o que significa que eles se comportam o mesmo como qualquer outro valor
Callback - Função passada como argumento de outra função é muitas vezes assíncrona
foreach - Irá percorrer a matriz e invocar uma função de retorno de chamada usando cada valor como argumento
Timing Functions - setTimeout(), clearTimeout() e setInterval()
Currying - É um processo que envolve a aplicação parcial dos argumentos da função
DOM
Document Object Model
BOM
Browser Object Model
AJAX
Asynchronous JavaScript And XML
Combinação de XMLHttpRequest object, JavaScript e HTML DOM
JavaScript Works
DOM, CSS e JavaScript Engine (Stack e Enviroment)
JavaScript Interpreta e cria um stack na memória
Compilação e hosting de variavéis
Execução do código e cria novos escopos de execução
Garbage collection
Scope Chains - A maneira como os escopos estão alinhados
JavaScript Runtime e Event Loop são diferentes pois o primeiro é original da linguagem e o segundo vem da engine
Hosting - Comportamento padrão de mover todas as variáveis e funções para o topo do escopo atual
Scoping - O ambiente em que compartilham dados
Módulos
CommonJS modules:
module.exports = functionName() - Exportar módulos
var moduleName = require(‘./path’); - Carregar módulos
Asynchronous Module Definitions (AMD):
Projetado para suportar o carregamento assíncrono de qualquer módulo e suas dependências
define() function - Os módulos são escritos em um arquivo separado e fornecidos como argumento
Eventos
2 Formas de propagar eventos:
Bubbling - Quando o evento dispara no elemento clicado primeiro, então borbulha para a árvore de documentos
Capturing - Começa a disparar um evento no elemento raiz, depois se propaga para baixo
Event delegation - pode ser usada para anexar um ouvinte de eventos a um elemento pai, a fim de capture eventos que acontecem com seus elementos filho
Programação Orientada a Objetos
Encapsulation - Manter toda a lógica de programação dentro de um objeto e disponibilizando métodos para implementar a funcionalidade
Polymorphism - Objetos diferentes podem ter o mesmo método, mas eles o implementam em seus
próprio caminho
Inheritance - Objeto que já existe e herdar todas as suas propriedades e métodos
Classes - Modelo de herança prototípica, conceito de protótipos de objetos, que pode ser usado como um modelo para criar outros objetos
Constructor - É uma função que retorna uma instância de um objeto que está definido na função quando é invocado com o novo operador
new - Emprega um construtor função para instanciar um novo objeto
Prototypal Inheritance - Usa um modelo de herança prototípica
Object Prototype Chain - Criar objetos de objetos criará uma cadeia de protótipo
Mixins - Método é uma maneira de adicionar propriedades e métodos de alguns objetos a outro objeto sem usar herança
Chaining Functions - Se um método retorna this, seus métodos podem ser encadeados para formar uma seqüência de chamadas de método que são chamados um após o outro
This e That - This aponta para o objeto chamando um método. "That refere-se a propriedades específicas de um objeto específico
Package manager
Yarn, Browserify, Bower, Ender, JSPM e NPM
MVC Libraries
Ember, AngularJS e BackboneJS
Template
Handlebars, Jade, Underscore, EJS, VueJS e React
Minification
Npm init e Webpack
Task Runner
Grunt e Gulp
ES6
Block Scope - let e const, maneira similar a var, mas tem escopo de bloco, então a variável só existirá
dentro do bloco foi criado em
Classes (class e extends) - Dentro da definição da classe, existe um método de construção onde todo o código de inicialização
Arrow Notation - Em vez de precisar da palavra-chave da função, tudo o que é necessário é colocar os parâmetros
antes do símbolo =>, seguido pelo valor de retorno do retorno de chamada
Default Parameters - Permitirá que os parâmetros padrão sejam especificados em uma definição de função, o que significa que usando o || o operador será desnecessário
Promises - Simplificar o processo e evitar o
código complicado que pode resultar do uso de chamadas múltiplas com callbacks
3 fases: Pending, fulfilled e failed
Generators - São funções especiais usadas para produzir iteradores que mantêm o estado de um valor, funciona como uma closure
Modules Using Export and Import:
export function nameFunction(array, callback) { }
import * from 'path';
Design Pattern
Padrão MVC - É usado para organizar o código em seções distintas que são responsáveis para diferentes elementos de uma aplicação
Creational - Com base no conceito de criar um objeto
Factory Method (Classe) - Isso faz uma instância de várias classes derivadas com base em dados ou eventos interativos
Abstract Factory (Objeto) - Cria uma instância de várias famílias de classes sem detalhar classes concretas
Builder (Objeto) - Separa a construção do objeto da sua representação, sempre cria o mesmo tipo de objeto
Prototype (Objeto) - Uma instância totalmente inicializada usada para copiar ou clonar
Singleton (Objeto) - Uma classe com apenas uma única instância com pontos de acesso globais
Structural - Com base na idéia de construir blocos de objetos
Adapter (Classe) - As interfaces de correspondência de diferentes classes, portanto, as classes podem funcionar juntas, apesar das interfaces incompatíveis
Adapter (Objeto) - As interfaces de correspondência de diferentes classes, portanto, as classes podem funcionar juntas, apesar das interfaces incompatíveis
Bridge (Objeto) - Separa a interface de um objeto de sua implementação para que os dois possam variar independentemente
Composite (Objeto) - Uma estrutura de objetos simples e compostos que torna o objeto total mais do que apenas a soma de suas partes
Decorator (Objeto) - Adicione dinamicamente processamento alternativo a objetos
Facade (Objeto) - Uma única classe que esconde a complexidade de um subsistema inteiro
Flyweight (Objeto) - Uma instância de grão fino usada para o compartilhamento eficiente de informações que está contida em outro lugar
Proxy (Objeto) - Um objeto titular do lugar que representa o objeto verdadeiro
Behavioral - Com base na forma como os objetos jogam e trabalham em conjunto
Interpreter (Classe) - Uma maneira de incluir elementos de idioma em um aplicativo para combinar a gramática do idioma pretendido
Template Method (Classe) - Cria o shell de um algoritmo em um método, depois adia os passos exatos para uma subclasse
Chain of Responsibility (Objeto) - Uma forma de transmitir um pedido entre uma cadeia de objetos para encontrar o objeto que pode lidar com o pedido
Command (Objeto) - Encapsular uma solicitação de comando como um objeto para habilitar, registrar e / ou fazer filas de solicitações e fornecer tratamento de erros para solicitações não tratadas
Iterator (Objeto) - Seqüencialmente acessar os elementos de uma coleção sem conhecer o funcionamento interno da coleção
Mediator (Objeto) - Define a comunicação simplificada entre classes para evitar que um grupo de classes se refira explicitamente entre si
Memento (Objeto) - Capture o estado interno de um objeto para poder restaurá-lo mais tarde
Observer (Objeto) - Uma maneira de notificar a mudança para várias classes para garantir a consistência entre as aulas
State (Objeto) - Alterar o comportamento de um objeto quando seu estado muda
Strategy (Objeto) - Encapsula um algoritmo dentro de uma classe que separa a seleção da implementação
Visitor (Objeto) - Adiciona uma nova operação a uma classe sem alterar a classe
Data Structure
NodeJS