360奇舞学院2018年前端星计划技术测评相关问题及自己的回答。
说明:写这篇博客意在记录做题经历,后面有时间温故知新,因为学习时间较短,所以难免有不少错误和不周之处,希望多多指正。同时,也分享给一起学习的小伙伴,一起进步成长,fighting,时刻不忘奶自己,蛤蛤蛤。
题目回忆及自己解答如下,我自己的回答肯定不太好,仅供参考,欢迎有更周全回答的小伙伴多多补充~~~
关于HTML”语义化”
题目:HTML“语义化”的理解。
回答如下:
1、我所理解的”语义化”
写html结构时,要根据内容结构安排,选择合适的标签元素,便于开发人员阅读,即语义化好的html文档,即使在没有css的情况下,页面也能呈现出良好的内容结构,开发人员能清晰的阅读和了解到基本的内容结构;
语义化也有助于提升用户体验,例如使用标签的title、alt属性可以提供附加的提示信息;
语义化还有助于SEO,爬虫可以根据标签确定关键字的权重,让浏览器爬虫更好的解析,所以类似h标签,和title标签就对SEO很重要。
语义化还可以使其他设备例如屏幕阅读器等以自己的方式呈现网页。
2、平时在项目中如何实践”语义化”
首先,在页面结构的整体组织上,对于页面内容整体划分区域结构,使用html5的语义化标签,像navigator定义导航栏,header、footer分别定义页面的头部和脚部,section定义某块区域,article定义一大段的文章段落等等。
其次,在具体的某一块内容区域内部的html结构实现上,注重细节,像img元素的alt属性,以便图片在无法加载时显示给用户必要的文字说明,lable标签的使用,可以使表单输入操作对用户更友好等等。
最后,应该尽量避免通篇div。
对结构、表现、行为分离原则的理解
题目:对结构、表现、行为分离原则的理解。
回答如下:
使用html文件编写网页结构,使用css文件写样式,js文件写与用户交互等网页动态行为,应该避免在html文件的标签内写内联样式,尽量使用外部样式表引入网页样式,同理,避免在html文件的标签上添加onClick等与交互相关的js操作,将动态行为相关的js操作放在单独的js文件中,使用script标签在body底部引入。
在实践中,我会在html文件中只写页面结构,不会添加style这样的内联样式,以及在标签上定义onClick这样的js属性操作,而是在单独的css文件中写页面样式,在单独的js文件中写页面的交互相关的动态操作代码,最后在引入到html文件中。
操作数组
题目:给定两个长度相同的整数数组,将其中的数字分别一一配对,对每一对数字计算乘积,然后求和,计算出总和最小的配对方式,并打印出总和。例如输入 [1,2,3], [1,2,3]
,输出为10。
回答如下:
|
|
待改进:应该全部用ES6语法写要好一些,但ES6语法不太熟练,导致写的有点不伦不类,凑合看看吧。。
CSS画扇形
题目:垂直、水平居中显示一个半径100的标志,如图所示:
回答如下:
|
|
待改进:忘记实现垂直居中效果了!!! 以下是老师批改时给的思路,”使用border构造相间的三角形,然后使用overflow-hidden和border-radius剪裁成圆”,感觉老师好认真,很nice! 下面是老师的思路实现:
其中:
border-top: solid 173.2px yellow;
border-left: solid 100px transparent;
border-bottom: solid 173.2px black;
border-right: solid 100px transparent;
实现的效果是利用border构造两个顶角是60度的三角形,效果如图:
然后再利用父元素的overflow-hidden和border-radius剪裁成圆。完整代码如下:
|
|
2048游戏
问题: 实现一个 2048 游戏。
解答如下:
2048游戏的实现原理参考了github项目js实现2048小游戏。
待改进:没有实现移动盒子时的动画效果,游戏初始时的第一个数字有时不是2,因为当时为了简单,设计的每一次更新盒子2或者4出现的概率分别为2/3、1/3,没有为初始的情况单独设计,有待进一步改进。