快手前端面经

全程面试体验很好,面试官很nice。
一面:主要是根据我的笔试的错题来展开的。(2道选择题,一道简答题)
1.BFC?怎么触发BFC?有哪些作用?
2.因为我最后一题关于dom操作的题写的不是很好,所以聊了下这个,并且扯到了jquery。
3.问了下缓存的东西,正好前天写了博客总结,就把我知道的都讲了,面试官还算满意。
4.img元素使用margin-top有作用吗?行内元素和块级元素?行内替换和非替换元素?
5.问了些我的经历,对java和node的看法。对目前的前端和以前的jsp的看法。
6.讨论了下公司目前做的业务,公司的技术栈,问了我vue的学习情况,做过哪些项目?写过小程序没?问了下github上的项目。
7.手撕代码1:
给出出栈序列和入栈序列,判断是否正确。
比较紧张,没a出来,没办法我是那种愚钝的人,代码不够熟练,无法将自己思路转化为代码,只能把思路讲给面试官听了。
面试官说思路对的,不过建议我不能因为有其他offer就表现的不积极,就算要花很长时间也不要放弃,不会可以问面试官。(虚心接受)
大家刷题不要停,否则就会和我一样,成为惨案。
8.手撕代码2:(这个还好比较简单,写个递归函数就行,主要注意判断不同情况)
将json字符串'{"a": 1, "b": "str", "c":[2, 3], "d":{"e": 4}}'
转化为如下格式:
{
    "a": 1,
    "b": "str",
    "c": [
        2,
        3
    ],
    "d": {
        "e": 4
    }
}
有人问了下这道题的解答,我给下我的答案吧
let obj=JSON.parse('{"a": 1, "b": "str", "c":[2, 3], "d":{"e": 4}}');
let s="";
s+="{\n"+solve(obj,1)+"}";
function solve(obj,tab) {//没有缩进版本的
    let tmp="";
    if(Array.isArray(obj)){
        tab++;
        for(let i in obj){
            tmp+=addEmpty(tab)+i+",\n";
        }
    }else{
        for(let i in obj){
            tmp+=addEmpty(tab);
            if(typeof obj[i]!="object"){
                if(typeof obj[i]=="string"){
                    tmp+='\"'+i+'\":\"'+obj[i]+'\"';
                }else{
                    tmp+='\"'+i+'\":'+obj[i];
                }
            }else if(Array.isArray(obj[i])){
                tmp+='\"'+i+'\":'+"[\n"+solve(obj[i],tab)+addEmpty(tab)+"]";
            }else{
                tmp+='\"'+i+'\":'+"{\n"+addEmpty(tab)+solve(obj[i],tab)+addEmpty(tab)+"}";
            };
            tmp+=",\n";//这里还需要处理下,因为最后一项是没有逗号的,但是我的是每一项有逗号。
        }
    }
    return tmp;
}
function addEmpty(tab){
    let tmp="";
    for(let i=0;i<tab;i++){
        tmp+="     ";
    }
    return tmp;
}
console.log(s);
	
总之整个面试过程体验很好(除了手撕代码题1),基本都像和老师聊天一样,没有什么不敢说的话题,快手确实是一家技术不错的公司。
然后聊了会让我等二面通知,二面完的话,继续更新在此贴,突然有点想去北京了。。。。。

二面:
1.问了我学习各种东西的程度,学习中遇到的困难怎么解决的。
2.问了些JSP的东西。。。。全忘了。。。
3.手撕代码:函数柯里化。。。又写砸了。。。磕磕绊绊总算写完了。。。也是把思路告诉了面试官。。。。
4.聊了一下快手目前的发展。
居然过了。。。(感觉挺幸运的,我觉得我应该算是好看的那种,感谢面试官不杀之恩)。
#春招##面经#
全部评论
问个**问题 ,把json转化为对象用json.parse不就可以了吗
点赞 回复 分享
发布于 2019-03-17 14:23
大佬的博客能看看不?
点赞 回复 分享
发布于 2018-05-23 23:43
汕大大佬啊,同汕大。
点赞 回复 分享
发布于 2018-05-06 13:10
你是在哪的京东实习?深圳吗?
点赞 回复 分享
发布于 2018-05-04 11:43
我也面过快手,被三面面试官怼的不能自理
点赞 回复 分享
发布于 2018-05-04 11:42
有三面吗
点赞 回复 分享
发布于 2018-05-04 02:32
json.stringify(obj,null,2)
点赞 回复 分享
发布于 2018-05-04 00:32
哇,老哥应该要去快手了吧。真爽啊,好象看大佬刚拿过京东
点赞 回复 分享
发布于 2018-05-03 22:56
自己顶顶
点赞 回复 分享
发布于 2018-05-03 22:24
哇哭泣 你的二面也太简单了 我的二面问了git mvvm框架 模块化 打包工具 两题算法 🌚
点赞 回复 分享
发布于 2018-05-03 21:56
下午刚刚面完一面,让我等消息
点赞 回复 分享
发布于 2018-05-03 20:58
一面二面一天面完的吗
点赞 回复 分享
发布于 2018-05-03 19:58
楼主二面完,直接通过了吗?
点赞 回复 分享
发布于 2018-05-03 18:41
手撕代码2怎么写,当时脑子空白了
点赞 回复 分享
发布于 2018-05-03 17:59
剑指offer的原题😄
点赞 回复 分享
发布于 2018-05-03 17:53

相关推荐

HTTP头是HTTP协议中的一部分,用于在请求和响应中传递附加的信息。&nbsp;HTTP头由字段名和字段值组成,用冒号分隔,每个字段占据一行。以下是几个常见的HTTP头字段及其作用:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&amp;uuid=b48bebe08e474db8b80b853b12bafd48User-Agent:指明发送请求的客户端应用程序的类型和版本。服务器可以根据这个头字段来判断用户的设备或浏览器类型,以提供适合的内容。例:User-Agent:&nbsp;Mozilla/5.0&nbsp;(Windows&nbsp;NT&nbsp;10.0;&nbsp;Win64;&nbsp;x64)&nbsp;AppleWebKit/537.36&nbsp;(KHTML,&nbsp;like&nbsp;Gecko)&nbsp;Chrome/58.0.3029.110&nbsp;Safari/537.3Content-Type:指定请求或响应中传输的数据的MIME类型。对于请求,它告诉服务器请求正文的内容类型;对于响应,它告诉浏览器响应正文的内容类型。例:Content-Type:&nbsp;application/jsonContent-Length:指定请求或响应正文的字节数。服务器可以使用此字段来确定正文的长度,从而正确解析请求或响应。例:Content-Length:&nbsp;348Accept:指定客户端能够处理的响应内容类型。浏览器在发送请求时使用此字段,以告诉服务器它可以接受哪些类型的响应。例:Accept:&nbsp;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8Authorization:用于在请求中传递身份验证信息,通常用于保护需要授权访问的资源。例:Authorization:&nbsp;Basic&nbsp;QWxhZGRpbjpvcGVuIHNlc2FtZQ==Cookie:用于在请求中传递保存在客户端的会话信息。服务器可以使用此字段来识别和验证用户。例:Cookie:&nbsp;sessionId=ABC123这些是HTTP头字段中的一些常见例子。HTTP头字段的作用是在请求和响应之间传递额外的信息,以便客户端和服务器可以根据需要进行适当的处理。不同的HTTP头字段有不同的作用,可以用于传递身份验证信息、内容类型、缓存控制等。
社畜职场交流圈
点赞 评论 收藏
分享
评论
4
74
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务