欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网易游戏雷火2020春招web前端工程师笔试卷0425

程序员文章站 2022-06-09 10:49:11
...

网易游戏雷火2020春招web前端工程师笔试卷0425

考试信息

招聘单位:网易游戏雷火事业群校园招聘
岗位:前端开发工程师
回复时间:2020年4月23日
笔试时间:2020年4月25日 13:00 - 14:30 (考试时长90分钟)
笔试平台:牛客网

笔试题型

单选:4题
不定项:6题
编程题:1题
问答题:7题

详情

题目我都大概搜了一下百度添加了引用,如果有错或者有更好的引用地址,请评论!!

单选

1.在var set = new Set([0, 2, 2, 0, 0, 5, 9, {}, {}, NaN, NaN])中,set.size为多少?7?
2.权限为765的文件,下列哪个是正确的权限标记? -rwxrw-r-x
3.已知一棵二叉树,中序遍历是DBFEACHGI,后序遍历是DFEBHIGCA,则前序遍历为:ABDEFCGHI
4.哪种前端构建技术可以剔除JS中没有被使用的代码:Tree Shaking?

不定项

1.以下哪些排序算法是不稳定的排序算法:快速排序,堆排序

原有的顺序不变,那这种排序算法就是稳定的。如:冒泡排序、基数排序、插入排序、归并排序、桶排序、二叉树排序等。
反之,如果不能保证原有顺序,这种算法就是不稳定的。如:选择排序,希尔排序,堆排序,快速排序等。

2.调用数组的以下哪些方法,可能会改变原数组的值:splice,sort,reverse

总结
会改变原来数组的有:
pop()—删除数组的最后一个元素并返回删除的元素。
push()—向数组的末尾添加一个或更多元素,并返回新的长度。
shift()—删除并返回数组的第一个元素。
unshift()—向数组的开头添加一个或更多元素,并返回新的长度。
reverse()—反转数组的元素顺序。
sort()—对数组的元素进行排序。
splice()—用于插入、删除或替换数组的元素。

3.给定正则表达式/^(SE)?[0-9]{12}$/,满足此匹配条件的字符串有:24?

‘1234567890’
‘123456789123’
‘ESX1234567Y’
‘SI12345678’

4.JS中以下哪些运算值为true:1247?

1.Symbol(1) === Symbol(1)
2.!{}
3.NaN === NaN
4.!’’
5.!-1
6.!NaN
7.Symbol.for(1) === Symbol.for(1)
8.![]

5.以下哪些flex的属性是在容器元素上的

align-content
justify-content
flex-grow
align-items

6.下列哪个git命令不是合并代码用的:git blame, git commit(这个不知道是不是。。)

git命令合并代码:(1)git merge;(2)git pull;(3)git cherry-pick
执行git blame;命令时,会逐行显示文件,并在每一行的行首显示commit号,提交者,最早的提交日期等

编程题

没有调试,不可跳出
已知斐波那契数列是从0和1开始,后面的两个数都是前两个数之和。
// 请用JS实现一个性能较好的方法 fib(n), 返回斐波那契数列的第n个数。
示例的输入=> 输出分别为
0 => 0
1 => 1
2 => 1
通过率100%代码(应该):

// 时间复杂度O(n),空间复杂度O(1)
  if (Number.isInteger(n) === true) {
    let a, b, temp;
    if (n == 0) return 0;
    else if (n <= 2) return 1;
    else {
      a = b = 1;
      for (let i = 3; i < n + 1; i++) {
        temp = a + b;
        a = b;
        b = temp;
      }
      return temp;
    }
  }

还有递归方式和数组循环:Link

问答题

这个类型的问题,如需画图或推导,可在草稿上作答,手机拍照扫码上传。

1.写一段JS代码按照浏览器渲染的顺序遍历下列每个节点,遍历时打印出当前节点的类型及类名。

<div class="root">
  <div class="container">
    <section class="sidebar">
      <ul class="menu"></ul>
    </section>
    <section class="main">
      <article class="post"></article>
      <p class="copyright"></p>
    </section>
  </div>
</div>

2.请用JS实现一个类似new关键字的方法create,使create(Foo, a, b, c) 和new Foo(a,b,c…)的执行效果相同

3.请描述一下单页面路由的实现方式?

4.请以在浏览器中访问www.163.com为例,描述一下DNS通过域名查询到具体的IP的过程。

5.请描述一下浏览器的缓存机制。

6.请写出下面代码的运行结果:

async function async1() {
  console.log('async1 start');
  await async2();
  console.log('async1 end');
}
async function async2() {
  console.log('async2');
}
console.log('script start');
setTimeout(function() {
  console.log('setTimeout');
}, 0);
async1();
new Promise(function(resolve) {
  console.log('promise1');
  resolve();
}).then(function() {
  console.log('promise2');
});
console.log('script end');

答案:
script start
async1 start
async2
promise1
script end
async1 end
promise2
undefined // 不知道这个哪里来的
setTimeout

相关地址:async/await的执行顺序

7.请描述一下CSS选择器的解析顺序。

相关标签: 笔试