9.8日完美世界前端笔试—B卷
前言
- 限时1.5h,单选21 * 3分 + 不限选择题9 * 3分(注意少选得1分哦)+ 问答题*2(20 + 10分)
- 我发现不管笔试难或易,总会有人吐槽“XXX公司是不是不想招人啊”,简单的就说刷不了人,难的就说都被刷了…… 哈哈哈
- 哎,光做笔试真没劲!我倒要看看哪家先进面。
选择题
选择题考得很简单,限于HTML、CSS、JS。大部分是css的问题比如box-sizing的值、 有哪些伪元素、flex:auto的属性简写。
问答题
没有编程,这部分应该算是编程题吧,可以用本地IDE。难道又要人工改卷嘛。
1. 写一个方法,求出路口到A到路口B的最短路径
- 题干就是这样的。就是求图的最短路径嘛,但是没有输入输出,也不知道该怎么写。
/* 求图的最短路径。 题目啥都不给,怎么写呀? */ // 假设已给出图的邻接矩阵,各点A、B、C用数字0、1、2……表示。所以找到0-1的最短路径就可以了 // 测试: let arr = [[2, 3, 5], [3], [0], [0, 1], [1], [0]]; console.log(minRoad(arr)); // [0,3,1] function minRoad(arr) { let start = arr[0], roads = [] for(let i = 0; i < start.length; ++i) { dfs(start[i], arr, [0]) } return roads.sort((a,b) => a.length - b.length)[0] function dfs(next, arr, road) { // 这种情况下说明有环或者回头路,此路不通 if(road.includes(next)) { return } // 这个说明找到路了 if(next === 1) { roads.push([].concat(road, next)) return } // 如果没有找到,就继续往下 let nextPoint = arr[next]; for (let i = 0; i < nextPoint.length; ++i) { dfs(nextPoint[i], arr, [].concat(road, next)); } } }
2. 写一个功能,实现页面动态展示本年的剩余天数——“XX年还剩XX天XX时XX分XX秒”
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h2 id="time"></h2> <script> /* 思路是用下一年的1.1日减去现在的时间的毫秒数,再格式化日期。 动态变化是用setInterval来实现的 */ let div = document.getElementById('time'); setInterval(() => { let date = new Date() let now = date.getTime(); let nextYear = date.getFullYear() + 1; let end = new Date(`${nextYear}-01-01`).getTime(); let last = end - now; let show = getDate(date.getFullYear(), last); div.innerText = show; }, 1000); // 格式化时间 function getDate(year, time) { let relsecond = Math.floor((time/1000)%60); let minute = ((time/1000)/60); let relminute = Math.floor(minute%60); let hour = minute/60; let relhour = Math.floor(hour%24); let relday = Math.floor(hour/24); return `${year}年还剩${relday}天${relhour}时${relminute}分${relsecond}秒` } </script> </body> </html>