700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 网易游戏雷火春招web前端工程师笔试卷0425

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

时间:2023-12-24 19:44:08

相关推荐

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

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

考试信息笔试题型详情单选不定项编程题问答题

考试信息

招聘单位:网易游戏雷火事业群校园招聘

岗位:前端开发工程师

回复时间:4月23日

笔试时间: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}$/,满足此匹配条件的字符串有:

‘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.请以在浏览器中访问为例,描述一下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

await会让出线程,await之后的代码首先执行,之后就跳出async函数执行js栈的余下代码。所以才会在script end之后输出async1 end。相关解答地址:async/await的执行顺序promise的resolve会被插入回调序列,在js栈结束后回调。

高亮的地方,会由于浏览器版本不同而处理顺序不同,见贺师俊老师的回答。这里也有很多讨论。同时,我尝试着在async2里继续套娃,得到的输出

在async4(在script end之前输出过了)的条件下,script end之后的输出:

async3 end

promise2

async2 end

async1 end

setTimeout无论多少,都会在同步任务结束后才开始。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。