Keep

收藏
工具
1000-9999人
D轮及以上
北京
高校必争榜牛客指数榜
榜单独角兽企业榜单高新技术

0

在招职位

79

面试经验

0

真题试卷

查看官网
上传简历
此刻你想和大家分享什么
职位类型
全部
后端开发
前端开发
客户端开发
运维/技术支持
人工智能/算法
最新
热门
03-30 01:16
已编辑
湖南科技大学 前端工程师
1. 封装组件的话有用过插槽吗,作用域插槽呢2. 父子之间的传值是怎么传的,父子通信3. provide和inject用过吗,接受什么类型的数据,能接收函数吗(能)4. vue2中父与子生命周期的执行顺序5. 组件中的name和路由的name有什么作用6. 路由传参有params和query,params是怎么传值的(router中的name就是配合params进行路由跳转和获取动态的参数,而query是通过push路径的方式进行传值)7. vue中的keep-alive用过这个组件吗,不是HTTP中的8. 场景:没有在data函数中去定义,我是直接在mounted函数中直接用this.a等于1,然后我把这个a绑定在这个模板上,此时呢有一个按钮是改变这个a的值,把this.a变成等于2,那么这个模板中的a显示的值是1还是29. vue2响应式是怎么处理的10. ref和reactive的区别,分别去解构还会是响应式吗(reactive失去响应式,ref不会)11. watch和watchEffect用到过吗12. html中script标签设置defer和async有什么用13. cookie,localStorage,sessionStorage区别,两个标签页的sessionStorage能共享吗(不能),localStorage呢(能)14. vuex和pinia在两个标签页中能共享吗(不能)15. 二级域名下的cookie在一级域名下能拿到吗(不能),反过来可以,向下兼容16. 盒模型,content-box标准盒模型(它不包含margin,你实测过吗)17. 两栏布局,左边固定,右边自适应怎么实现(flex)18. 水平垂直居中布局19. 外层div设置了transform,内层设z-index=999生效吗20. 行内元素的margin和padding左右方向生效,上下不生效21. map和forEach的区别,可以链式写吗(链式的前提是有返回值,map可以写,因为有返回值)22. git的命令,删除本地的分支(git branch -d ),git pull和git pull --rebase的区别#前端凉经#
查看22道真题和解析
点赞 评论 收藏
分享
2024-12-17 16:51
已编辑
门头沟学院 前端工程师
自我介绍实习当人什么角色项目中有什么困难,怎么解决垂直居中4种方式层叠上下文flex布局常见的单位(没有说微信小程序种的单位)闭包(闭包会导致什么问题)bind和callthis指向(错了)var num = 100;var obj = {    num: 200,    inner:{        num:300,        print: function(){            console.log(this.num);        }    }};// 1)obj.inner.print();// 2)var func = obj.inner.print; func();// 3)(obj.inner.print)();// 4)(obj.inner.print = obj.inner.print)();// 5) 利用obj.inner.print函数输出200promise(链式调用有点忘记了,少说了一个6)function test(){    return new Promise((resolve,reject) => {        console.log(2);        setTimeout(() => {            console.log(1)            reject(112)        },200)    })    .then((res) => {        console.log(3);    })    .catch( async (res) => {        console.log(4);        return await new Promise((resolve,reject) => {            setTimeout(() => {                console.log(5);                reject('end');            }, 200);        })    })    .catch((res) => {        console.log(res);    }).then((res) => {        console.log(6)    })}test();算法题:给一个数组,要求去重,排序,去除掉undifine, false, null两数之和项目种用到了keep-alive说说它的注意事项,原理
查看4道真题和解析
点赞 评论 收藏
分享
        一直面试只能让你把会的背的更熟,但想进步还是得回头看看不会的问题。        今天回顾一下我遇到的一些有价值的问题,结合我自己的一些理解对这些问题尝试解答一下,相信对大家一些知识的理解也会有些帮助(有问题的话欢迎指出)。有用的话感谢大家点赞收藏送花~1.(滴滴提前批二面)Vue开启了keep alive之后会经历哪些生命周期?缓存了什么东西?        这个点我自己是没有仔细思考过的,当时面试官提问vue的生命周期,我提到了Vue开启keep alive前后生命周期的不同,面试官拓展的问了这个问题。        背八股的时候都背过,使用<keep-alive></keep-alive>组件包裹后可以在切换路由的时候不必销毁组件。并且会多出两个生命周期:activated和deactivated。其中activated在组件渲染的时候执行,deactivated在组件隐藏时执行,因此将这两个生命周期对比mounted和beforeDestory来学习。组件在初次渲染的时候会经历从beforeCreate到mounted这整个阶段,在后续切换的过程中则只会经历activated,随后的beforeUpdate和updated都会经历,隐藏时经历deactivated,最后销毁的时候才会经历beforeDestory和destoryed。        那么缓存了什么?我们知道在mounted阶段,虚拟DOM转为真实DOM,此时data,method,虚拟DOM都有了;而activated阶段可以不经历前面的钩子,直接挂载DOM,说明keep-alive缓存了虚拟DOM,并且还有所有的数据/方法,也就是缓存了组件实例。        如果面试阶段没有见过这个题,可以从每个生命周期干了什么开始联想,其中走到mounted阶段拥有了什么,那么actived阶段就也会有这些。2.(4399一面)http1.1的情况下,一个网页的图片是一张一张加载还是一批一批加载的?        首先回顾一下http1.1的特性:    ● 默认长连接,新增响应头Connection:keep-alive字段,保持TCP连接不断开    ● 管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回    ● 缓存处理:新增catch-control字段    ● 断点传输机制。文件传输时如果遇到网络故障,可以从已经上传/下载好的地方继续请求,不用从头开始        其中第二点提到的管道化基本可以解答整个问题,虽然可以发送多个请求,但是返回的顺序还是有序的。因此虽然TCP最大连接数有6~8个,但是返回时还是顺序返回的。        但是需要注意,如果严谨一点的话还是要考虑一下预加载的情况。例如,当浏览器解析到 HTML 中的<link rel="prefetch">标签时,它可能会提前发起对指定资源(包括图片)的请求,这样在真正需要显示该图片时,可能已经加载完成或者部分加载,从而在一定程度上出现看似一批加载的情况。3.(Minimax一面)eval和new Function的this指向问题:        eval的this指向可以看这篇,很详细:https://ayk.moe/articles/javascript-change-this-in-eval-function/index.html        简单的说:eval函数只要是在全局直接运行或者是通过一个函数调用执行、作为对象属性被调用执行这种间接的执行方式,他的指向都是全局作用域。他不能直接被call/bind/apply改变this指向,改变的思路是在eval外面包一层函数,改变外面这个函数的this指向。        new Function:使用 new Function 创建的函数,它的 [[Environment]] 指向全局词法环境,而不是函数所在的外部词法环境。因此,我们不能在 new Function 中直接使用外部变量。        如果你对这块不熟悉,来看看这个:https://zh.javascript.info/new-function4.(Minimax二面)React:在if else里书写hooks,为什么不可以?        我用我自己比较容易理解的话术来简述一下关键原因,这里面的具体细节还是比较复杂的,有兴趣的牛u可以找找资料了解一下。        react的fiber树有两颗:        current fiber树: 当完成一次渲染之后,会产生一个current树,current会在commit阶段替换成真实的Dom树(可以看成虚拟dom转真实dom)。        workInProgress fiber树: 即将调和渲染的 fiber 树。再一次新的组件更新过程中,会从current复制一份作为workInProgress,更新完毕后,将当前的workInProgress树赋值给current树。        workInProgress tree上有一个memoizedState属性,在函数组件中,memoizedState在一次调和渲染过程中,以链表的形式存放hooks信息。        每一个hook函数执行,都会产生一个hook对象,里面存放了hook的当前信息,然后会以链表的形式串联每个hook对象,并赋值给workInProgress的memoizedState。        每次组件更新的时候,会先复制一份current tree到workInProgress tree,此时在workInProgress上进行更新。一旦在条件语句中声明hooks,在下一次函数组件更新,hooks链表结构,将会被破坏(某个节点可能被跳过),current树的memoizedState缓存hooks信息,和当前workInProgress不一致,如果涉及到读取state等操作,就会发生异常。                以上很多是自己的理解,可能讲述不准确但有助于自己理解,欢迎评论区留言指出错误~#面经##前端##滴滴##4399##minimax##24届软开秋招面试经验大赏#
点赞 评论 收藏
分享
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客企业服务