Entrada de front-end da web para o combate real: 32 perguntas comuns da entrevista de js

Perguntas da entrevista JS:

[Clique aqui para receber informações sobre as perguntas da entrevista]

1. Quais tipos de dados são retornados por typeof de javascript

string, boolean, number, undefined, function,object

2. mencionado três tipos de moldes e dois tipos de conversão de tipo implícito?
Obrigatória ( parseInt, parseFloat, number) implícita ( == === + -)

3. A diferença entre split () e join ()
split() é cortar a string em um array, que join()é converter o array em um string.

4. Métodos de array pop (), push (), unshift (), shift ()

  • push()Adicione no final
  • pop()Apagar cauda
  • unshift()Adição de cabeça
  • shift()Exclusão de cabeçalho

5. Quais são os métodos de escrita compatíveis no IE e padrões

var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target

6. A diferença entre get e post quando a solicitação de ajax

  • getEle está de urlvolta postna operadora virtual dentro
  • get Existe um limite de tamanho (apenas alguns parâmetros podem ser enviados)
  • postQue getsegurança
  • Diferentes aplicativos, solicitar dados e enviar dados

7.call 和 apply 的 区别 Object.call
(this, obj1, obj2, obj3) Object.apply (this, arguments)

applyE a callúnica diferença é que diferentes parâmetros do segundo modo de transferência, applyum segundo parâmetro deve ser uma matriz, e callpode passar uma lista de parâmetros.

8. Como analisar dados json quando a solicitação ajax é
usadaJSON.parse

9. O que é delegação de evento?
Use o princípio de bolha de evento para permitir que seus próprios eventos disparados sejam executados por seus elementos pais!

10. O que é um encerramento, quais são suas características e qual o impacto que ele tem na página. Um
encerramento é uma função que pode ler as variáveis ​​internas de outras funções, de modo que a função não seja reciclada pelo mecanismo de GC. o fechamento é muito usado, é fácil causar vazamentos de memória.

Por que você está fechando o portal

11. Como impedir que o evento borbulhe

  • ou seja: pare de borbulhar ev.cancelBubble = true;
  • Não-IE ev.stopPropagation();

12. Como bloquear eventos padrão

  • 1return false
  • 2 ev.preventDefault().;

13. Adicionar, excluir, substituir e inserir em um método de contato
1. Crie um novo nó

// 创建一个具体的元素
createElement();
// 创建一个文本节点
createTextNode();

2. Adicionar, remover, substituir, inserir

appendChild();  //添加
removeChild();  //移除
replaceChild(); //替换
insertBefore(); //插入

3. Encontre

//通过标签名称
getElementsByTagName();
//通过元素的Name属性的值
getElementsByName();
//通过元素Id,唯一性
getElementById();    

14. Explique o princípio do jsonp e por que não é um ajax real
criar scripttags e funções de retorno de chamada dinamicamente

AjaxÉ a página sem operação de solicitação de atualização de dados

15.A diferença entre o carregamento do documento e o documento pronto é
document.onload que jsele é executado somente depois que a estrutura e o estilo, o exterior e a imagem são carregados.js

document.readyUma domárvore foi criada na implementação do método, este método não é nativo, jqueryexiste$().ready(function)

16. ”"com"= "A diferença
== converterá automaticamente o tipo, e então julgará se é igual,
===não converterá automaticamente o tipo, basta ir para a comparação

17. Qual é a diferença entre declaração de função e expressão de função?
Em Javscript, o analisador não trata declarações de função e expressões de função da mesma forma ao carregar dados no ambiente de execução. O analisador lerá a declaração de função primeiro e a tornará disponível (acessível) antes de executar qualquer código. Quanto às expressões de função, devem esperar até que o analisador é executado na linha de código em que está localizado antes de ser realmente analisado e executado.

18. Para entender o contexto do escopo e isso, observe o seguinte código:

var User = {
    
    
 count: 1,
 getCount: function() {
    
    
  return this.count;
 }
};
console.log(User.getCount()); // 1
var func = User.getCount;
console.log(func()); // 是1和undefined

`func`是在`window`的上下文中被执行的,所以不会访问到`count`属性。

19. Observe o código abaixo e forneça o resultado de saída.

for(var i = 1; i <= 3; i++){
    
      //建议使用let 可正常输出i的值
  setTimeout(function(){
    
    
    console.log(i);   
  },0); 
};
4 4 4// 原因:Javascript事件处理器在线程空闲之前不会运行。

20. Quando um nó DOM é clicado, queremos ser capazes de executar uma função, o que devemos fazer?

box.onlick= function(){
    
    }
box.addEventListener("click",function(){
    
    },false);
<button οnclick="box()"></button>

21. Qual é o modelo de fluxo de eventos do Javascript? O
“事件冒泡”: evento começa a ser recebido pelo elemento mais específico e, em seguida
“事件捕捉”:, é propagado para cima nível a nível. O evento é recebido primeiro pelo nó menos específico e, em seguida, desce nível por nível para os
“DOM事件流”:três estágios mais específicos : captura de evento, estágio de destino, borbulhamento de evento

22. Observe o código a seguir, qual é a saída? Explique o motivo.

var a = null;
alert(typeof a);
// object

Explicação: Esse JavaScripttem sido o caso desde seu início. É nullum tipo de dados com apenas um valor e esse valor é null. Representa um objeto de ponteiro nulo, portanto, o typeofteste retornará ”object”.

23. Determine que a string deve começar com uma letra, seguida por números, sublinhados, letras e o comprimento é 6-30

var reg=/^[a-zA-Z]\w{5,29}$/;

24. Responda ao seguinte código, qual é o valor do alerta?

    var a = 100;  
    function test() {
    
      
        alert(a);  
        a = 10;  //去掉了var 就变成定义了全局变量了
        alert(a);  
    }  
    test();
    alert(a);
// 正确答案是:100, 10, 10

25. Qual é a diferença entre os dois intervalos de variáveis ​​de javaScript?

  • Variáveis ​​globais: válido na página atual
  • Variáveis ​​locais: válidas dentro do método da função

26. A diferença entre null e undefined?
nullÉ um objeto que representa "nenhum", que é convertido em um valor numérico 0; undefinedé um valor original que representa "nenhum", que é convertido em um valor numérico NaN. Quando a variável declarada não foi inicializada, o valor padrão da variável undefined. nullUsado para indicar objetos que ainda não existem

undefinedIndica "valor faltando", ou seja, deveria haver um valor aqui, mas ainda não foi definido. O uso típico é:

1. Quando a variável é declarada, mas não atribuída, é igual a undefined.
2. Ao chamar a função, o parâmetro que deve ser fornecido não é fornecido e o parâmetro é igual a undefined.
3. O objeto não tem nenhum atributo atribuído e o valor do atributo é undefined.
4. Quando a função não retorna um valor, ela retorna por padrão undefined.

nullSignifica "nenhum objeto", ou seja, não deveria haver nenhum valor ali. O uso típico é:
1. Como parâmetro de uma função, significa que o parâmetro da função não é um objeto.
2. Como o fim da cadeia de protótipos de objetos.

27. O que exatamente o novo operador faz?
1. Crie um objeto vazio, e esta variável se refere ao objeto, e ao mesmo tempo herda o protótipo da função.
2. Propriedades e métodos são adicionados ao objeto referenciado por este.
3. O objeto recém-criado é referenciado por this e, finalmente, retorna isso implicitamente.

Quais são as maneiras de atrasar o carregamento em 28.js?

  • defercomasync
  • Criado dinamicamente DOM(modo de criação script, inserido no DOMmeio, carregado callBack)
  • Carregar js de forma assíncrona sob demanda

29. Como escolher entre as vantagens e desvantagens do Flash e Ajax em uso?

Comparação de Flash Ajax

1. É Flashadequado para processamento de multimídia, gráficos vetoriais e acesso a máquinas; CSSnão é fácil de ser pesquisado devido ao processamento de texto insuficiente.
2. ajaxSim CSS, o suporte de texto é muito bom, pesquisa de suporte; multimídia, gráficos vetoriais, acesso à máquina é insuficiente.
Pontos comuns: entrega não atualizada de mensagens com o servidor, status do usuário offline e online, operação do DOM

30. Não use loops, crie um array de comprimento 100, e o valor de cada elemento é igual ao seu subscrito.

new Array(100).fill(0).map((_, c) => c)

31 Como desejo todas as caixas de seleção da página? (Não usa estruturas de terceiros)

var inputs = document.getElementsByTagName("input"); // 获取所有的input标签对象
var checkboxArray = []; // 初始化空数组,用来存放checkbox对象。
for(var i=0;i<inputs.length;i++){
    
    
  var obj = inputs[i];
  if(obj.type=='checkbox'){
    
    
     checkboxArray.push(obj);
  }
}

32. Escreva uma função para limpar os espaços antes e depois da string. (Compatível com todos os navegadores)

String.prototype.trim= function(){
    
    
    return this.replace(/^\s+/,"").replace(/\s+$/,"");
}

Acho que você gosta

Origin blog.csdn.net/weixin_56134381/article/details/115330236
Recomendado
Clasificación