今日完成了大数金科一面,现在分享一下面试经历。
- Q:如果要实现如下网页布局,其中1和2须不收滚动影响,3的内容可滚动阅读,你会怎么完成?
A:遇到这种情况的话,我会对元素1和2使用绝对定位absolute
将1和2进行绝对定位,然后对3进行右浮动,再设置overflow:scroll-y
即可实现。
- Q:你知道css有哪些选择器吗?
A:css的选择器有标签选择器、ID选择器、类选择器、迭代选择器、子元素选择器、通配符选择器以及伪类选择器。 - Q:position有哪些属性?
A:有absolute绝对定位、relative相对定位、fixed绝对定位、static普通定位和inherit继承父元素定位。 - Q:假如给你一个字符串string="string",然后console.log(string.substring(1,3)),其输出是什么?
A:tri。 - Q:依然是刚才的字符串,如何让他倒序输出?
A:因为字符串没有倒序的能力,所以我们可以使用split()将其转换为数组,而后使用reverse颠倒元素,再使用join转回字符串,具体为string.split().reverse().join()。 - Q:怎么找到数组中的最大值?
A:使用Math.max方法可以实现,具体为Math.max.apply(Math,Array对象)。 - Q:Call和apply的功能是什么,他们的区别是什么?
A:他们的功能时修改当前的this指针,区别是他们的传入参数不一样。 - Q:假如有一个数组array=[1,2,3,4,4,5],怎么去除他的重复值
A:定义一个新数组,使用循环,然后判断元素是否存在,存在即忽略,不存在就加入新数组。
(这个回答弱爆了,后来查了一下,发现了几个更加方便的方法)
1.
function unique(arr) {
//定义常量 res,值为一个Map对象实例
const res = new Map();
//返回arr数组过滤后的结果,结果为一个数组
//过滤条件是,如果res中没有某个键,就设置这个键的值为1
return arr.filter((a) => !res.has(a) && res.set(a, 1))
}
2.
function unique(arr) {
return Array.from(new Set(arr))
}
- Q:有一个三行三列的ul怎么使用nth-child伪类获取第三列?
A:ul:nth-child(3n)
Q2:从第二个到最后呢?
A2:li:not(:nth-child(1))
- Q:再问一个比较简单的吧,怎么使一个正方形变成圆形
A:为其设置boder-radius:100%