完美世界前端一面面经

1.css定位 哪几种定位 分别是相对于什么定位的

  • 静态定位(static) 元素的默认定位,按照标准流特性摆放位置
  • 相对定位(relative)元素在移动位置的时候是相对于它原来的位置来说的,原来在标准流中的位置继续占有,后面的盒子仍然以标准流的方式对待他,主要用于限制绝对定位
  • 绝对定位(absolute)绝对定位的元素在移动位置的时候相对于最近一级有定位的祖先元素来说,如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位,不再占有原先的位置,脱离标准流
  • 固定定位(fixed)固定定位是元素固定于浏览器可视区的位置,以浏览器可视窗口为参照点移动元素,不再占有原来的位置,脱离标准流
  • 粘性定位(sticky)以浏览器可视窗口为参照移动元素(固定定位的特点),占有原来的位置(相对定位的特点),必须加top left right bottom其中一个才有效

2.浮动会造成什么问题,怎么解决

浮动会导致父元素高度坍塌,浮动元素脱离了文档流,并不占据文档流的位置,自然父元素也就不能被撑开,所以没了高度。
解决方案:清除浮动
  • 父级添加after伪元素或添加双伪元素(兼容IE还得添加一个.clearfix{*zoom:1}):
.clearFloat:after {
    content:""; 
    display:block; 
    height:0;
    clear:both;       
        visibility:hidden;   
}  
.clearfix:before,.clearfix:after{
     display: table;
     content: "";
}
.clearfix:after{
    clear: both;
}
  • 额外标签法:在最后一个浮动元素后面添加块级元素
<div class = "clear"></div>
.clear{
    clear:both;
}
  • 为父元素设置overflow属性
.father{
    overflow:hidden;
}

3.怎么设置元素的层叠关系,有什么限制

z-index,限制是只有定位的盒子才有z-index属性

4.css选择器,怎么把135,246分别选出来

:nth-child()

选择列表中的偶数标签  :nth-child(2n)
选择列表中的奇数标签 :nth-child(2n-1)

5.读代码 文字会呈现什么颜色

<div id = "title">
    <p>haha</p>
</div>
#title{
     color:red;
}
p{
     color:blue;
}

蓝色

6.了不了解transition 

过渡,可以为一个元素在不同状态之间切换的时候定义不同的过渡效果。是 transition-propertytransition-durationtransition-timing-function 和 transition-delay 的一个简写属性
transition-property:规定设置过渡效果的 CSS 属性的名称。
transition-duration:规定完成过渡效果需要多少秒或毫秒。
transition-timing-function:规定速度效果的速度曲线。
transition-delay :定义过渡效果何时开始。

7.animation 大概怎么写

@keyframes animationName {
    from {
        properties: value;
    }
    percentage {
        properties: value;
    }
    to {
        properties: value;
    }
}
// 或者
@keyframes animationName {
    0% {
        properties: value;
    }
    percentage {
        properties: value;
    }
    100% {
        properties: value;
    }
}
  • animationName:表示动画的名称;
  • from:定义动画的开头,相当于 0%;
  • percentage:定义动画的各个阶段,为百分比值,可以添加多个;
  • to:定义动画的结尾,相当于 100%;
  • properties:不同的样式属性名称,例如 color、left、width 等等。
例:
@keyframes ball {
    0% { top: 0px; left: 0px;}
    25% { top: 0px; left: 350px;}
    50% { top: 200px; left: 350px;}
    75% { top: 200px; left: 0px;}
    100% { top: 0px; left: 0px;} 
}

8.为什么会造成跨域问题,有哪些解决方案,服务器要进行什么样的配置,jsonp为什么可以解决跨域,有什么限制

老八股了

9.数组去重的方式

利用Set()或Map()
let arr  = [1,1,2,2,3,4,5,5,6]
let res = [...new Set(arr)]
console.log(res)
let arr  = [1,1,2,2,3,4,5,5,6]
let map = new Map()
for (let i=0;i<arr.length;i++){
    if(map.has(arr[i])){
        map.set(arr[i],map.get(arr[i])+1)
    }else{
        map.set(arr[i],1)
    }
}
console.log([...map.keys()])
利用find()
let arr  = [1,1,2,2,3,4,5,5,6]
let res = []
arr.forEach(num=>{
    if(!res.find(newNum=>newNum===num)){
        res.push(num)
    }
})
利用some()
let arr  = [1,1,2,2,3,4,5,5,6]
let res = []
arr.forEach(num=>{
    if(!res.some(newNum=>newNum===num)){
        res.push(num)
    }
})
console.log(res)
利用indexOf()
let arr  = [1,1,2,2,3,4,5,5,6]
let res = []
arr.forEach(num=>{
    if(res.indexOf(num) === -1){
        res.push(num)
    }
})
console.log(res)
利用every()
let arr  = [1,1,2,2,3,4,5,5,6]
let res = []
arr.forEach(num=>{
    if(res.every(newNum=>newNum !== num)){
        res.push(num)
    }
})
console.log(res)
利用filter()
let arr  = [1,1,2,2,3,4,5,5,6]
let res = []
arr.forEach(num=>{
    if(!res.filter(newNum=>newNum==num).length){
        res.push(num)
    }
})
console.log(res)
利用map()
let arr  = [1,1,2,2,3,4,5,5,6]
let res = []
arr.map(num=>{
    if(!res.find(newNum=>newNum===num)){
        res.push(num)
    }
})
console.log(res)


10.数组排序 sort是根据什么排的 ,怎么升序排,怎么降序排

arr.sort([compareFunction])
默认排序顺序是根据字符串UniCode码。因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较。
如果指明了 compareFunction 参数 ,那么数组会按照调用该函数的返回值排序。
arr.sort((a,b)=>a-b)
arr.sort((a,b)=>b-a)

11.怎么设置事件捕获,事件冒泡

element.addEventListener(eventfunctionuseCapture)
省略或将第三参数设置为 false,将注册冒泡阶段的事件。
将第三参数参数设置为 true,将注册捕获阶段的事件。

12.场景题 缓存策略 假如要设置一个100条数据的缓存,用什么数据结构去存比较合适

我自己想的是优先级队列,最小堆,面试官说性能不是很好,用双向链表实现。


感想:太久没看css了,把transition都答成transform了,感觉完美世界还是挺爱问css的,面试官也不是很会引导人,我都答错了也没提醒我,等我bb完他笑了我才突然想起来答错了,尴尬.... 面试体验一般般
#完美世界#
全部评论
老哥一面过了没
1 回复 分享
发布于 2022-09-09 12:50 上海
宁波银行金融科技部看看不?看主页内推哦
点赞 回复 分享
发布于 2022-09-09 08:19 浙江
面经居然还带答案
点赞 回复 分享
发布于 2023-03-08 20:27 北京

相关推荐

04-30 11:05
已编辑
门头沟学院 C++
暑期总结&nbsp;---&nbsp;TimeLinebg:双非本&nbsp;中末211硕&nbsp;战绩(通过/总场数:10/16)TimeLine&nbsp;小厂就不汇总啦-&nbsp;2.15&nbsp;滴滴投递(2周简历挂)-&nbsp;腾讯2.19投递&nbsp;2.20测评&nbsp;&nbsp;-&nbsp;3.4&nbsp;teg&nbsp;一面&nbsp;&nbsp;-&nbsp;3.6&nbsp;teg&nbsp;二面&nbsp;(挂)&nbsp;csig约面&nbsp;&nbsp;&nbsp;-&nbsp;3.10&nbsp;csig&nbsp;一面(自己太菜&nbsp;挂&nbsp;回去沉淀了)&nbsp;&nbsp;-&nbsp;3.17&nbsp;wxg客户端&nbsp;一面(手撕对&nbsp;问题全是前端不会&nbsp;业务不匹配&nbsp;挂)&nbsp;&nbsp;-&nbsp;4.11&nbsp;qq&nbsp;一面&nbsp;(八股项目都没问题&nbsp;手撕来个Hard暴力写的&nbsp;面试官后续给的解法也不对回去看了会超时...&nbsp;一道数据库场景题&nbsp;面试官的业务我完全没听过&nbsp;我的项目面试官也不太了解他不是做这方面的&nbsp;一周后挂)&nbsp;&nbsp;-&nbsp;「所有面评均当晚给」-&nbsp;2.22&nbsp;米哈游投递&nbsp;&nbsp;-&nbsp;笔试没写...-&nbsp;2.24&nbsp;DolphinDB&nbsp;(简历秒挂)-&nbsp;2.27&nbsp;星网锐捷&nbsp;(测评都不给...211本会给)-&nbsp;3.2&nbsp;虹软&nbsp;&nbsp;-&nbsp;早上有事笔试没写-&nbsp;3.14&nbsp;小红书投递&nbsp;(1周简历挂&nbsp;211本简历也挂...)-&nbsp;3.16&nbsp;B站笔试&nbsp;&nbsp;&nbsp;-&nbsp;就一道编程(预处理数据+前缀和秒了&nbsp;过了大半个月说我笔试没过...&nbsp;就是简历挂了应该)-&nbsp;3.6&nbsp;作业帮(无笔试约面)&nbsp;&nbsp;-&nbsp;3.14&nbsp;一面&nbsp;&nbsp;&nbsp;-&nbsp;3.24&nbsp;二面&nbsp;(排序两周多后挂)&nbsp;&nbsp;-&nbsp;「面试官都很好」-&nbsp;3.11&nbsp;志杰约面&nbsp;&nbsp;-&nbsp;3.20&nbsp;一面客户端&nbsp;(八股项目没问题&nbsp;手撕直接没写出来&nbsp;后续无任何联系&nbsp;他们很缺人可惜没把握住&nbsp;还得沉淀)-&nbsp;2.25&nbsp;网易互娱投递&nbsp;&nbsp;-&nbsp;3.27&nbsp;笔试(2.0/3)&nbsp;&nbsp;-&nbsp;4.8&nbsp;一面&nbsp;&nbsp;-&nbsp;4.18&nbsp;二面&nbsp;&nbsp;-&nbsp;4.23&nbsp;三面&nbsp;&nbsp;-&nbsp;4.25&nbsp;hr面&nbsp;&nbsp;-&nbsp;4.29&nbsp;oc&nbsp;&nbsp;-&nbsp;「所有所有公司面试体验最好的,专业并耐心不会难为人&nbsp;感恩&nbsp;许愿顺利入职&nbsp;🐭🐭会好好干的」-&nbsp;4.11&nbsp;云智投递&nbsp;&nbsp;-&nbsp;4.14&nbsp;笔试(2.61/3)&nbsp;&nbsp;-&nbsp;4.17&nbsp;一面(秒)&nbsp;&nbsp;-&nbsp;4.21&nbsp;二面&nbsp;&nbsp;-&nbsp;4.26&nbsp;三面(秒&nbsp;leader人超好)&nbsp;&nbsp;-&nbsp;4.28&nbsp;hr面&nbsp;&nbsp;-&nbsp;预计oc&nbsp;(如果有幸oc应该是拒掉了)-&nbsp;4.14海康威视&nbsp;&nbsp;-&nbsp;笔试(3.0/3)&nbsp;&nbsp;-&nbsp;面试在五月应该是推掉了&nbsp;&nbsp;暑期总结&nbsp;---&nbsp;问题(回忆版)-&nbsp;企鹅&nbsp;&nbsp;-&nbsp;八股之前有写过&nbsp;&nbsp;&nbsp;-&nbsp;场景题&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;当我要传输一个大文件,但是在传输过程中有一个路由器很慢,可能50bps,请问在我发起GET请求到文件下载过程中,TCP在这个过程中做了什么?&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;我有很大数量的IP地址(127.0.0.1&nbsp;、127.0.0.2),我现在想要知道像前三个段(A&nbsp;.&nbsp;B&nbsp;.&nbsp;C)一样的IP组,那个IP组对应的数量最多?我想知道前k个呢?(注意堆排序堆可能不够大?此外堆消耗的时间和空间是多少?)&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;我有一个大数据集1TB,&nbsp;内部存储32为的整数,我现在要找到最大的数字。&nbsp;&nbsp;-&nbsp;算法:&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;如何判断链表是否有环?快慢指针。那如果一个环的起始节点开始,两个点一个一次走1步一个一次走3步,那么两者第一次相遇的时间是多久。&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;手动构建stack,实现二叉树迭代中序遍历-&nbsp;志杰&nbsp;&nbsp;-&nbsp;八股:死锁&nbsp;&nbsp;智能指针&nbsp;&nbsp;-&nbsp;算法:版本号排序(脑子抽了&nbsp;没写出来)-&nbsp;作业帮&nbsp;&nbsp;-&nbsp;八股:&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;rtp字段、数据报&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;redis为什么快&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;C++&nbsp;Lamba&nbsp;&nbsp;&nbsp;-&nbsp;场景:&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;类似交易场景如何确保数据强一致&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;A线程中阻塞等待B线程完成,设计如何实现-&nbsp;网易&nbsp;&nbsp;-&nbsp;八股:&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;iptable知道吗?&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;ARP协议有听说过吗?如何ping?&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;符号表&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;C++中的智能指针和作用?他们之间和裸指针之间是什么关系如果要和裸指针搭配是怎么用的?&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;RAII&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;extern&nbsp;c&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;左右值&nbsp;move&nbsp;forward&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;多线程同步&nbsp;&nbsp;-&nbsp;算法:&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;栈实现队列&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;递归-&nbsp;云智-&nbsp;八股:&nbsp;&nbsp;-&nbsp;前两面照着题表问:是人就会&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;其中一个问题不太理解:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;父进程fork子进程后,他们的执行顺序?我:谁先谁后都有可能,按内核调度吧。追问:不是,那也有个先后顺序。「我至今不没懂&nbsp;我觉得就是调度的没有规则的先后吧,不知道大家怎么想」&nbsp;&nbsp;-&nbsp;内存模型、volatile、memory_order-&nbsp;算法:无总结:三月战绩烂透,四月运势好转,感恩🥹保持努力迟早会有机会的!希望我们都有美好未来
点赞 评论 收藏
分享
评论
10
39
分享

创作者周榜

更多
牛客网
牛客企业服务