快手前端一面 面经
时间:2023.8.25
时长:65 min
base:北京 帝都
面试岗位:前端 秋招
问题
-
自我介绍
-
你为啥选择面前端,为啥没有去找后端呢?
-
我也简单看了你的项目,这是前后端都是你搭建的吗?
-
你有做过C端方面的吗?
-
主要是Vue?
-
对React知道多少?
-
你对CSS动画有哪些了解呢?
-
css常见的单位有哪些?
-
vw vh能说一下什么意思吗?
-
rem原理是啥?
-
你有了解移动端如何实现自适应的?【我只说到了rpx】
-
有两个div,说间距 margin重叠问题,
-
如何解决margin重叠问题,我说外面套俩div,触发BFC,然后问我触发BFC的方法,我说overflow:hidden,因为其他的方法我有点忘了,所以就直说其他的记得不是很清楚,
-
typeof [] 值,这个是object,我说成array了,哈哈哈哈
-
列举数组能改变自身的方法
-
concat会改变自身吗?
-
cookie除了key value,还能设置什么,我说了过期时间,然后不知道了,面试官提示xss,我就想到了httpOnly,secure。
-
浏览器同源策略
-
CORS有时候会发一个option请求,有了解过吗?
-
有几个输出能说一下吗?关于原型链的。
-
又来一提,这一题是暂时性死区的问题 const,问我输出是啥,我说了一波,然后面试官说会报错。。。然后把const改成var 输出又是啥,又被迷惑一波 ,呜呜呜......
-
来了一个promise,然后在里面还thorw,而且有一堆then,问输出是啥,又错了呜呜呜...
-
手撕代码,让程序能睡一秒
let a = 1; setTimeout(() => { a = 2; }, 1000); let a = 1; await sleep(1000); a = 2; function sleep(ms) { }
-
手撕代码,让能弹出成功,只能写一行代码:
function foo(){ var str = reverse('a,b,c,d,e,f,g'); if(str == 'g#f#e#d#c#b#a'){ alert('成功'); }else{ alert('失败'); } } function reverse(str) { }
-
手撕代码,用正则表达式实现字符串的trim,忘了正则,用遍历for实现了
String.prototype.trim = function() { };
-
手撕代码,找两个数组的交集
const nums1 = [4,9,5]; const nums2 = [9,4,9,8,4]; // [4,9] or [9,4] function fn(nums1, nums2) { }
-
手撕完毕居然还有时间。。。。。所以继续问,, 写vue是2还是3,都用
-
ref和reavtive的区别
-
vue有两种路由模式,能介绍一下嘛?
-
在history模式需要服务端配合,在nginx需要做什么操作呢 try_files
-
你也用过node?
-
你了解SSR吗?
-
反问环节 经典问 技术栈和做什么产品
总结
promise这方面应该补一下。promise各种then来then去,
#面经##秋招##快手#