minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Perguntas frequentes em entrevistas front-end JS cobrem muitos aspectos, incluindo sintaxe básica, estruturas de dados e algoritmos, operações DOM, programação assíncrona, modularização, uso de estrutura/biblioteca, etc. A seguir estão algumas perguntas comuns de entrevistas JS de front-end de alta frequência e sua breve análise:
var
、let
、const
Qual é a diferença? Qual é o seu escopo e ciclo de vida?i++
e++i
Qual é a diferença?break
econtinue
Como é diferente quando usado em um loop?push
、pop
、shift
、unshift
、splice
、slice
、join
、sort
espere)JSON.parse(JSON.stringify(obj))
, operador de spread, recursão e outros métodos)Promise.all
ePromise.race
?import
/export
) e quais são suas vantagens?this
apontando regras e desempenho em diferentes cenários.Exemplos de perguntas: Por favor, explique o mecanismo da cadeia de protótipos em JavaScript.
analisar:
__proto__
Propriedades (recomendadas no ES6Object.getPrototypeOf()
método), esta propriedade aponta para o método do seu construtorprototype
Atributos.Object.prototype
)。null
, indicando que não há mais objetos de protótipo para procurar.1. Quais são os tipos de dados em JavaScript? Qual é a diferença entre eles?
responder:
Existem 8 tipos de dados em JavaScript, incluindo tipos de dados básicos (tipos primitivos) e tipos de dados de referência (tipos de referência).
A principal diferença entre tipos de dados primitivos e tipos de dados de referência é como eles são armazenados e atribuídos. Os valores dos tipos de dados básicos são armazenados na memória da pilha e os valores são copiados diretamente durante a atribuição, enquanto os valores dos tipos de dados de referência são armazenados na memória heap e a memória da pilha armazena referências (ou seja, endereços) aos valores; na memória heap, que são copiados durante a atribuição, são uma referência.
2. Fale sobre escopo e fechamento em JavaScript?
responder:
Escopo : refere-se ao intervalo válido de identificadores, como variáveis e funções no bloco de código. JavaScript tem principalmente dois escopos: escopo global e escopo local (incluindo escopo de função, escopo em nível de bloco, etc.). As variáveis do escopo global são visíveis em todo o script, enquanto as variáveis do escopo local só podem ser acessadas dentro do bloco de código em que estão definidas.
Fecho : significa que uma função lembra e tem acesso ao seu escopo léxico, mesmo que a função seja executada fora do seu escopo léxico. Os principais usos dos encerramentos são encapsular variáveis privadas, criar módulos, etc. Os fechamentos permitem que as funções acessem e manipulem variáveis fora da função, e essas variáveis não são facilmente contaminadas ou alteradas mesmo fora da função.
3. Explique programação assíncrona e Promise em JavaScript?
responder:
Programação assíncrona : significa que a ordem de execução do código não é baseada na ordem de escrita, mas é determinada com base no cumprimento de certas condições (como solicitações de rede, leitura e gravação de arquivos, etc.). JavaScript é de thread único, mas implementa programação assíncrona por meio de loops de eventos e funções de retorno de chamada.
Promessa : é um novo objeto introduzido no ES6, usado para lidar com operações assíncronas. Um objeto Promise representa uma operação que pode não ser concluída agora, mas será concluída (ou falhará) no futuro e seu valor de resultado. A promessa tem três estados: pendente (em andamento), cumprida (bem-sucedida) e rejeitada (falhou). Através do Promise, podemos escrever código assíncrono de forma síncrona, tornando o código mais conciso, fácil de entender e manter.
4. Fala sobre bolha de eventos e captura de eventos em JavaScript?
responder:
Borbulhamento de eventos : significa que o evento começa no elemento de destino e depois se propaga até o nível superior da árvore DOM (ou seja, o objeto do documento). Durante o processo de bolha do evento, qualquer nível de elementos DOM pode capturar o evento e processá-lo.
captura de eventos : ao contrário do evento borbulhante, a captura de eventos começa no topo da árvore DOM e depois se propaga até o elemento de destino. Durante o processo de captura de eventos, qualquer nível de elementos DOM pode capturar o evento e processá-lo.
Em JavaScript, você pode definir o método de processamento de eventos através do terceiro parâmetro do método addEventListener, ou seja, usar bolha de eventos ou captura de eventos. Se o terceiro parâmetro for verdadeiro, significa usar captura de eventos; se for falso ou omitido, significa usar bolha de eventos.
5. Quais novos recursos são introduzidos no ES6+?
responder:
Muitos novos recursos foram introduzidos no ES6 (ECMAScript 2015) e versões subsequentes, incluindo, mas não se limitando a: