快手前端视频一、二面

刚开始以为只有一面,谁知道一面面完了让等一下二面

一面

  • CSS3 选择器有哪些(不太了解)
  • 那你了解的选择器有哪些(伪类伪元素,兄弟,子元素,后代)怎么写(h1 h2,h1>h2)
  • CSS 两栏布局(float table flex)两列等高布局
  • 浏览器渲染的过程(html 构建 dom,css 构建 cssom,这两个构建 render tree,渲染)
  • 怎么判断一个文件是 html(content-type? 有哪些值 json JavaScript,其他的不太了解)
  • http 缓存(强缓存和协商缓存,中间有些自己理解的问题,面试官指出来了)
  • 301 和 302 状态码
  • js 基本数据类型
  • typeof 的值有哪些
  • 还有哪些判断类型的 api (instanceof Array.isArray constructor Object.prototype.toString.call)
  • bfc 的特性(说了块和靠边)
// 科学计数法,将 24315436 转换成 24,315,436
// 之前看过这个的正则就用正则写了
function change(num){
    var str = num + "";
    str.replace(/\B(?=((\d{3})+)$)/g,',');
    // str.replace(/\B(?=(\d{3}+)$)/g,','); 当时是这么写的,少加了个括号,没改完他就说思路是对的
    return str;
}
  • ?= 的作用(正向预检)
// 写出一个数组展开函数, 如输入:[1,[2,[3,4,2],2],5,[6]],  则输出:[1,2,3,4,2,2,5,6] 
// 因为和深度无关,所以说最简单可以这样
function flatten(arr){
    var res = arr.join().split(',');
    res = res.map( ele => +ele)
    return res;
}
// 还有吗,递归,写一下
function flatten(arr){
    var array = [];
    arr.forEach(ele => {
        if(Array.isArray(ele)){
            array.push(...flatten(ele));
        } else {
            array.push(ele);
        }
    })
    return array;
}
  • let var 区别(var 存在变量提升,let 块级作用域,暂时性死区,let 可以重复定义吗,不可以)
  • 事件模型及事件委托
  • 写一下深拷贝(这个就不写了,网上有)还有哪些方式(JSON 序列化)还有吗(我知道的就这两种,还有其他的吗)你的答案是对的,但是想看看你知识的广度
  • 软件工程方面看过哪些书(高级软件工程,人月神话看过吗,不清楚)
  • 设计模式(单例和装饰者讲一下,单例模式用处,AOP 知道吗,不太了解,好像是 before 函数和 after 函数)
  • 排序算法时间最优(nlogn 的吧,哪些?快排,堆排,归并)
  • 快排最坏 n2,什么情况下,基本有序

一面基本就这些,面完了让等一下二面

二面

二面好多东西记不太清了,写一下自己还记得的吧

// 实现一个函数 findLastIndex(), 返回指定数在“有序”数组中最后一次出现的位置findLastIndex([1,2,3,3,3,4,5], 3), 返回 4
// 刚开始写的有点问题,没有判断全部相等的情况,后面提醒写上了,写的比较粗糙,如果有更好的可以分享一下。
function findLastIndex(arr,num){
    var mid,left,right,pos = -1;
    mid = Math.floor(arr.length/2);
    left = 0;
    right = arr.length - 1;
    if(arr[left] != arr[right]){
        while(Math.abs(left - right)!= 1){
            if(arr[mid] === num){
                pos = mid;
                left = mid;
                mid = Math.floor((left + right)/2);
            }else if(arr[mid] > num){
                right = mid;
                mid = Math.floor((right + left)/2);
            }else if( arr[mid] < num){
                left = mid;
                mid = Math.floor((left + right)/2);
            }
        }
    }else{
       pos = arr.length - 1;
   }
    return pos;
}
// 请实现一个函数,功能为合并两个升序数组为一个升序数组
// 这道题网上有,自己没答好,最后没写对就没写了
  • instanceof 实现原理
  • 其他还有哪些方式判断,跟一面差不多
  • 工程化的东西有用过吗(自己有学过,然后让讲一下过程,讲的不好,可以说很差)
  • 模块化(ES6 Module AMD CommonJS 区别)import 和 require 区别(一个值的拷贝,一个值的引用,还有吗,不清楚)
  • 事件绑定哪些(onclick addeventlistener 还有 html 页面里面 onclick)dom0 级和 dom2 级事件有哪些(一开始理解错了,后面提醒是其实就是 onclick 和 addeventlistener 的区别)什么情况下用到事件委托
  • css 移动端适配有哪些(viewport,media query,rem)
  • 移动端有哪些单位(px,rem)还有吗(em,好像不适合移动端,而且他是叠加计算的)
  • 那 em 和 rem 是什么,rem 就是 :root { font-size: 16px },em 根据父元素的 font-size。默认值多少 16px;

二面明明好多没答好的,结果记不太清了,就记得这些了,问了下自己表现不好的地方,实战经验太少。唉,估计又挂了,面的不少,基本没有过的,难受

#快手##面经##前端工程师##内推##秋招#
全部评论
正则替换你那个函数还是有问题的,replace不改变str,str还是原串,需要赋值或者直接return新值。
点赞 回复 分享
发布于 2020-02-05 00:37
没有人说科学计数法那题不对么...直接 return num.toString().replace(/\B(?=((\d{3})+)$)/g,','); 就行了不是么
点赞 回复 分享
发布于 2019-03-12 11:04
老哥,稳
点赞 回复 分享
发布于 2018-09-04 11:09
var arr=[1,2,3,3,3,4,5]; function sun(arr,num){     var str=arr.join('');     return str.lastIndexOf(num); } sun(arr,3); 面试的时候可以使用这些“方法”吗
点赞 回复 分享
发布于 2018-09-02 23:25
返回指定数最后出现的位置不可以用lastIndexOf吗?
点赞 回复 分享
发布于 2018-09-02 23:12
arr.toString().split(',').map(val=>+val)
点赞 回复 分享
发布于 2018-09-02 21:51
楼主,视频面试链接提示“账户余额不足”是什么情况啊?
点赞 回复 分享
发布于 2018-09-02 13:48
我二面 上来自我介绍 问了问都会啥➕学多久,然后就让我写组件,之后问了嘴重用优化,然后就说回去等,50mins不到
点赞 回复 分享
发布于 2018-09-01 19:21
我二面面了1个小时,感觉也是凉。。。
点赞 回复 分享
发布于 2018-09-01 18:45
一面的时候直接告诉你二面了么
点赞 回复 分享
发布于 2018-09-01 18:39
我一面都没过…你已经很棒了
点赞 回复 分享
发布于 2018-09-01 18:12

相关推荐

09-08 21:59
西北大学 Java
1.&nbsp;这段实习里面哪个项目对你帮助比较大?2.&nbsp;重构过程中怎么保证安全性的?3.&nbsp;在重构过程中有遇到哪些问题吗?兼容性问题?bug?4.&nbsp;之后如果要做这方面重构有什么建议或者理解?5.&nbsp;上线后怎么去评估功能是否完善?6.&nbsp;物联网的课程设置有什么特点?与计科有什么区别?7.&nbsp;编译原理?汇编语言?8.&nbsp;对嵌入式编程有什么理解?与正常的企业项目有什么区别?9.&nbsp;用在服务器中的linux和用在嵌入式系统的linux有什么区别?10.&nbsp;为什么嵌入式大部分用C和C++?11.&nbsp;嵌入式的内存、CPU都有多大?12.&nbsp;讲下面向对象的特性13.&nbsp;&nbsp;在开发中觉得这些特性重要吗?14.&nbsp;反射的机制知道吗?15.&nbsp;一个java后端项目分层一般怎么做?16.&nbsp;了解哪些数据库产品?17.&nbsp;数据库设计表有什么原则?18.&nbsp;联合索引设计有什么注意事项?19.&nbsp;什么时候数据库需要分库分表?20.&nbsp;项目中用过分库分表吗?21.&nbsp;项目中用了哪些RPC组件?了解哪些?22.&nbsp;RPC组件一般网络中都会使用NIO模型,说说你了解的BIO、NIO模型23.&nbsp;NIO的特性基于操作系统方面有哪些了解?24.&nbsp;多路IO复用对应操作系统的哪部分?25.&nbsp;epoll有两种模式,哪两种?有什么作用?26.&nbsp;现在HTTP服务是基于NIO还是BIO?27.&nbsp;HTTP的网络方面的能力有什么?比如指定一个组件的能力?指定并发量?28.&nbsp;HTTP请求处理网络IO的能力?29.&nbsp;现在我发一个HTTP请求给你,这个网络请求传输按分层来讲会怎么传输?封装和拆包的过程30.&nbsp;以太包到哪就结束了?然后拆包去传输?31.&nbsp;整个传输过程中每次拆包都会要CPU参与吗?32.&nbsp;HDFS和K8S有接触吗?消息队列有用到吗?33.&nbsp;算法:找到链表倒数第n个节点
点赞 评论 收藏
分享
09-19 15:57
南开大学 Java
📍面试公司:字节🕐面试时间:9月19💻面试岗位:后端❓面试问题:只说我觉得稍微有难度的,基础的不写了一.八股1.ARP欺骗是什么(先问的我输入一个网址到回显的过程,我中途提到了arp会去找mac地址,然后就问我ARP欺骗是什么,凭感觉说了下)2.消息队列怎么保证三个层面可靠性,有序性,不丢失?3.消息队列有很多个,如何取舍选择哪个呢?4.详细说说堆这个数据结构5.进程间通信方式?各自的优缺点。二.场景题你有一台机器,很小的内存,现在你有一个很大的日志,日志里面只记录了IP地址,实现一个算法找出访问次数最大的IP(我说用hash,面试官说ip都装不下,你map里又要记录ip又要记录次数,能装下吗?后面说分治)三.项目1.为什么用http和mq通信?为什么不用RPC?2.消息队列如何保证不重复消费?存在redis里的话用什么数据结构?什么时候移除?3.这个项目有哪些表?追问订单信息这个表构建索引了吗?应该怎么对这个表构建索引?哪些字段加索引?4.讲讲微服务间如果通信?讲讲锁单/结算/退单流程?5.讲讲动态配置中心怎么实现的?限流器怎么实现的,为什么用本地缓存,能用redis吗,redis怎么实现限流器?四.手撕删除倒数第n个链表节点(面试官有点皮,故意让我输入需要特判的情况,比如n大于链表长度了,比如删除了链表的头节点)🙌面试感想:还行,百分之95都答上了,继续加油!!!
查看12道真题和解析
点赞 评论 收藏
分享
评论
5
142
分享

创作者周榜

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