写在前面
CSDN话题挑战赛第1期
-
活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f
-
参赛话题:前端面试宝典
-
话题描述:欢迎各位加入话题创作得小伙伴,如果我没有猜错得话,我觉得你是应该同我一样是一位前端人。如今前端在IT事业中的占比越来越重,已经成为不可缺少的部分,前端技术也是层出不穷,各种技术类、技术框架也蜂拥而出,前端面试的难度也随之增加,如果我们拥有一套前端面试宝典。如果你是应聘者:你就可以从容的solo面试官,如果你是面试官:你就可以将应聘者拷问到骨子里!
总之我们大家一起将自己的面试经验以及学习到的知识点汇聚于此,形成一套体系的前端面试宝典。让读者无论是面试还是学习都能够有非常大的收获。就让我们携手共筑前端面试宝典吧!!! -
创作模板:
题目一
现在提供一个URL “www.csdn.com/api/questions”,URL会返回前端所需要的数据。具体数据结构如下:
[
{
"id" :"sign-up-form",
"name" : "sign up",
"category" : "HTML"
},
{
"id" :"transform",
"name" : "transform",
"category" : "CSS"
},
...
]
我们的前端的框架样例为:
<div class = "category">
<h2>HTML</h2>
<div class="question">
<h3>Stopwatch</h3>
</div>
<div class="question">
<h3> Tic Tac Toc</h3>
</div>
</div>
现在需要你来写JavaScript代码来获取数据,并将数据正确的放入前端框架中,请忽略CSS。
考点
此题目为高级前端工程师面试第一题,考查了工程师对JavaScript基础知识的熟练度。可以在短短20-30分钟内将一个小功能实现,功能包括Ajax,async/await, DOM操作这些JavaScript日常用到的知识点。虽然每一个考点都不难,难的是将各个知识点整合,逻辑合理,没有bug。主要还是考察工程师的实战经验。
答案
const apiUrl = 'www.csdn.com/api/questions'
async function getQuestions()
{
const response = await fetch(apiUrl);
const question = await response.json();
return questions;
}
function transQuestionData(questionFromApi)
{
const questionByCategory = {
};
questionFromApi.forEach(ques => {