字节跳动_前端实习视频面试_内推三面

前言

二面结束后第二天中午11:00,收到hr电话,约好三面时间。

刚开始以为是hr 面,放松了下心情,但是还是很紧张。三面官不知道为何比一二面官亲近点。三面官从组件,架构,到算法,都问了。一面问基础,二面问项目,三面问内功。

面试时长:45 分钟


题目

1.询问 jquery 项目的事情,详细询问了组件化 是怎么个组件化

我拿 (搜索框 和 搜索按钮)举例,还拿了 表格 组件举例

2.面试官追问:试着写一下表格组件 的组件化代码

略。

3.你还有个项目用到了Vue,你了解 Vue 的双向数据绑定吗?

MVVM: 指 Model 、View 和 ViewModel。

Model 模型,数据存放于模型层

View 视图,视图层展示数据

Model 和 View 之间不直接联系,靠 ViewModel 联系起来。当Model的值发生变化的时候,通过数据绑定通知ViewModel,ViewModel再去改变View;当View 中发生用户交互导致数据变化时,ViewModel 通过DOM 事件监听,通知Model改变变化了的值。

面试追问,那么你知道 Model 是通过什么方式改变 View的值的吗?

每个Vue 实例中的 data 属性中的 每个值,在实例化过程中都会 给它 加上 getter/setter 函数,当 调用 setter 方法的时候,setter 方法内部会通知 ViewModel 改变 View 的值。

扫描二维码关注公众号,回复: 8669478 查看本文章

4.高德地图,百度地图,腾讯地图。

现在要我封装一个 地图组件, 兼容这些地图,屏蔽三种地图的方法,我不需要知道他们的方法名,就可以调用这些地图。现尝试写一下。

我说具体代码我暂时写不出,但是我觉得这个是适配器模式

面试官说:是的,你有思路了。

在面试官的引导下,写了一个简陋的地图类,未完成,但是因为思路说出来了,

面试官只是让我说下适配器模式具体怎么实现,我说出来之后,这题也是放我走了。

5.数据结构和算法记得吗,说下二叉树和栈,写下 二叉树 的层次遍历

栈是先进后出

二叉树的层次遍历:

function outputTree(root) {
    const arr = [];
    if(!root) {
        return arr;
    }

    const queue = [];
    queue.push(root);
    let node = null;
    while(queue.length) {
        const len = queue.length;
        for(let i = 0;i < len;i++) {
            node = queue.shift();
            arr.push(node.val);
            if(node.left) {
                queue.push(node.left);
            }
            if(node.right) {
                queue.push(node.right);
            }
        }
    }

    return arr;
}

6.问我最近在干嘛,学了什么,对什么比较感兴趣

我说了最近在了解 nodeJS,javascript 现在变得越来越 全面,还说了 Electron 和 React Native。


感想

三面总体感觉比一二面要好很多,最后面试官说他和我同一个大学毕业(难怪三面官感觉亲近),面试官最后也向我说明了目前公司里面的前端的三个主要职位方向:

(1)面向客户,制作 html5 + css3 为主的界面

(2)纯技术,制作 js 组件

(3)面向全栈,后台系统

我说我对前两个感兴趣。

继续加油吧。

发布了51 篇原创文章 · 获赞 27 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_39446719/article/details/88253270