Resumo da avaliação da entrevista de recrutamento de outono "Projeto de eficiência manual rápida"

Experiência em Engenharia de Eficiência Kuaishou

Introdução

Entregue no dia 25 de agosto (terça-feira) .Recebi um telefonema do RH na manhã do dia 8 de setembro informando que o currículo foi aprovado. A entrevista será realizada às 11h do dia 10 de setembro, e toda a entrevista levará cerca de 1 hora.

um lado

Sutra do rosto

1. Autoapresentação
2. Você acabou de mencionar o anti-shake no projeto debounce, conhece o princípio de implementação? Falar sobre

Essa pergunta foi usada no projeto, então eu mencionei na minha autoapresentação e expliquei o princípio. O entrevistador não queria que eu rasgasse ...

3. Onde fica sua cidade natal? Existem requisitos de cidade para a posição de entrevista em Pequim?

Resposta: Enfim, em Hunan, é um longo caminho a percorrer ...

4. Implemente uma função para retornar o tipo de parâmetro na forma de uma string (letras minúsculas são obrigatórias)

// null => 'null' undefined=>'undefined'
function getArgType(arg){
    
    
}

alcançar:

/* 编程题:以字符串形式返回参数类型  */

function getArgType(arg){
    
    
  let str = Object.prototype.toString.call(arg).slice(8,-1)
  let res = str[0].toLowerCase() + str.substr(1)
  return res
}
console.log(getArgType(null))
console.log(getArgType(undefined))

const a = 1
const b = new Number(1)
console.log(a === b)
console.log(getArgType(a))
console.log(getArgType(b))
console.log(getArgType(new Date(2020,9,10)))
console.log(getArgType(new RegExp(/^\s+|\s$/g)))

Eu perguntei back end 1e new Number(1)que diferença não vim aqui responder.

Os objetos Number, String, Boolean correspondem a números, strings e valores booleanos, respectivamente. Esses três objetos podem ser usados ​​para transformar valores primitivos em objetos (empacotados)

var v1 = new Number(123);
var v2 = new String('abc');
var v3 = new Boolean(true);

typeof v1;// "object"
typeof v2;// "object"
typeof v3;// "object"

v1 === 123; // false
v1 == 123; // true

Mas tenha cuidado no new Booleanuso, apenas se new Booleano valor do parâmetro nullou undefinedquando a avaliação for o valor original da conversão false, os outros casos sãotrue

5, dar-lhe uma série de [1,3,2,5]quantas maneiras você tem, procure falar o máximo

Não cheguei ao ponto do entrevistador. Estava pensando sobre o que poderia fazer além de comparação ou classificação transversal. Mas mais tarde descobriu pode continuar a orientar todos os tipos de série api, e depois respondeu sort, map, reduce, for循环, shift, pop, forEach,Math.max(...arr)

Mais tarde, o entrevistador disse que é útil apply, mas eu não usei.

var arr = [6, 4, 1, 8, 2, 11, 23];
console.log(Math.max.apply(null, arr))

6, para obter os seguintes efeitos: Quando você clica em uluma das seguintes lipostagens ui, a impressão do índice correspondente (pode 0ou 1)

<ul><li></li>........</ul>
<ul><li></li>........</ul>
<ul><li></li>........</ul>

Em última análise, segue-se, primeiro eu direciono querySelectorAlltodos li, mas darei a você todos lios eventos de ligação, então o entrevistador disse, considere o uso de eventos de proxy, em seguida, solicita e.target(naquele momento não escrevi, agora adicione)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>编程题:ul底下li索引值(多个ul)</title>
  </head>
  <body>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
    </ul>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
    </ul>
    <script>
      let list = document.getElementsByTagName('ul')
      for (let i = 0; i < list.length; i++) {
    
    
        list[i].addEventListener('click', (e) => {
    
    
          let target = e.target
          // console.log(target)
          if (target.tagName.toLowerCase() === 'li') {
    
    
            let liList = list[i].getElementsByTagName('li')
            // console.log(liList)
            // getElementsByTagName方法获取到的元素列表不是数组,
            // 和函数的arguments一样是一种类数组类型,不可以直接使用数组的方法。
            let idx = Array.prototype.indexOf.call(liList, target)
            /* 或者采用如下方式,将类数组转换成数组,然后使用indexOf方法 */
            // let idx = Array.from(liList).indexOf(target)
            console.log(liList)
            console.log(idx)
          }
        })
      }
    </script>
  </body>
</html>

7, o uso de vueembalagem de um componente, para realizar a função da contagem regressiva

倒计时(一个 button 按钮,有下述三种状态)
(开始-》暂停-》继续)

{
    
    count}
按钮

Referência: componente de contagem regressiva do pacote vue

8. Há mais alguma coisa que você queira me perguntar?

Sentir

Perguntei ao departamento sobre engenharia de eficiência, e depois o negócio principal é fazer os sistemas internos da empresa, como processamento de vários processos, quem pede licença, e depois mencionei que a empresa encapsula a ferramenta de chat interno, que é semelhante ao WeChat empresarial. Em seguida, também perguntou a pilha de tecnologia, é usada principalmente React + Ts, então o entrevistador disse que a pilha de tecnologia não é um grande problema, principalmente jsa capacidade de

Por fim, perguntei quanto tempo duraria o resultado da entrevista e o entrevistador disse que o resultado seria dado em um dia.

Acompanhamento

atualização pendente

Resumindo

atualização pendente

Acho que você gosta

Origin blog.csdn.net/weixin_42429718/article/details/108513485
Recomendado
Clasificación