明天下午就要参加三七互娱的前端笔试了,但是心里没底,没有做过题,所以今天恶补一下。一下题目均为三七互娱前端题
一、用js写出一个冒泡排序算法。
- 看到这个题我是懵的,因为冒泡排序我已经忘了具体是啥了。
- 知识点:冒泡排序算法
首先解释一下冒泡排序算法:好比有一个水缸,现在有 N 个水泡在里面,并且杂乱无章的竖直排列。然后因为自然规律,水泡大的会先浮出来。所以算法来了,就是从水缸底部开始依次比较,如果最底部的大于它上面的那个,就往上浮动,然后小的那个就被挤下去。如此,就两两比较,直到最大的到最上面,第一轮结束。第二轮,又从最底部开始,与上相同,直到重复了 N-1 次。
其实跟以前学C语言做那种有形状的字母排序是一个道理。核心就是有一个空的地方可以存放大的,然后换位置。
let bubbleSort=array=>{
let len=array.length
let temp
for(let i=0;i<len-1;i++){
for(let j=0;j<len-1-i;j++){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}
let array=[1,2,3,6,8,5,4]
console.log(bubbleSort(array)) //1234568
二 、CSS中的选择器的优先级是怎么样的?如何优化选择器?
优先级:行内样式>id>class>标签
优化:
- 避免使用通配符,因为css属性是可以继承的,如果说在通配符中设置了颜色,那么有时候想让某个字颜色是继承的父级元素,那么这时不会生效,而是通配符所设置的颜色。所以通配符的使用要慎重。
2.尽量少操作标签,而是使用class。
3.通过继承去少写一些重复的代码。
4.尽量少使用后代选择器,因为后代选择器不仅选择子代,还会选择孙子。。。。。哈哈哈。意思就是选择的太多了!但是,还是要分情况,因为只使用子代选择器可能会造成代码量过多,所以要灵活使用
三 、使用HTML5写出一个页面,包含头部、页头、页脚、文字内容和图片
考察的是h5的语义化标签,常用的有header、footer、nav(导航栏标签,定义导航栏)、section、video、audio、article(独立的内容区域,文本类型)、aside(页面的侧边栏去使用)、details(展示详情,使用场景比如说点击展开详情)、mark(会给一个字段添加背景色,并且不能被修改)、progress(进度条,但是丑)、section(类似于平时用div去包裹一个组件使用)、datalist(模糊查询)、canvas(大名鼎鼎的画布,还没学习哈哈哈)、dialog(聊天框)等等