字节跳动前端实习生(上海)

一面(2020-10-14)1h20m

  1. 自我介绍

  2. 说说为什么学前端

  3. 学前端需要什么特质

  4. 介绍项目

    • 登录权限问题
    • cookie和sessionStorage和localStorage
    • 后端如何修改cookie
    • 前端可以修改cookie么
    • 前端可以读取cookie么(不发请求)
  5. vue带来了怎样的好处

    • 什么是渐进式框架(我自己挖的坑,没回答出来)
    • vue相比jquery怎么提高性能(我提了vue可以提高性能)
    • diff算法对比做的优化(没回答出来)
    • 数据驱动视图如何实现的
    • watcher有哪些接口
    • watcher是做什么的
    • Dep构造函数有哪些方法,这些方法再什么时候调用
  6. 简单实现Dep这个构造函数(敲代码喽)

    function Dep() {
     this.subs = []
    }
    Dep.prototype.addSub = function (watcher) {
     this.subs.push(watcher)
    }
    Dep.prototype.notify = function () {
     for(const watcher of this.subs) {
         watcher.update()
     }
    }
    • 我看你用到可for-of,你说说它和for-in的区别
    • 如何让对象可以被for-of遍历
  7. 实现对a这个实例对象用for-of遍历

    class A {
    items: string[]
    }
    const a = new A()
    for (const i of a) {
     i
    }

    答:

    A.prototype.[symbols.iterator] = function() {
     int i = 0
     return {
         next: () => {
             int flag = false
             if(i === this.items.length) {
                 flag = true
             }
             return {
                 value: this.items[i++],
                 done: flag
             }
         }
     }
    }
    • 解释一下你写的代码
    • symblos我还写错了,流泪,面试官还是很nice的,会对你提示的,赞
  8. 用vue去实现一个倒计时的组件,有开始、停止、重置按钮,组件接受一个参数 limit(父传子),limit到0就不会再倒了

    <template>
     <p>{{limit}}</p>
     <button @click=start>开始</button>
     <button @click=stop>停止</button>
     <button @click=reset>重置</button>
    </template>
    <script>
    export default {
     data() {
       return {
           timer: null,
           number: this.limit
       }  
     },
     props: ['limit'],
     methods: {
         start(){
    
             this.timer = setTimeout(() => {
                 if(this.limit <= 0) {
                     clearTimeout(this.timer)
                 }else {
                     this.number--
                 }
             }, 1000)
         },
         stop() {
             clearTimeout(this.timer)
         },
         reset() {
             this.number = this.limit
         }
     }
    }    
    </script>
    • 如何把这个功能模块抽离
  9. 用mixin实现height、width两个属性,分别为浏览器的高宽,响应式

  10. 实现一个add函数,支持任意个参数,可以无限调用,有valueOf,调用valueOf方法就不能再计算了,返回计算结果

    function add() {
    var sum = 0
    var func = function() {
        for(const num of arguments) {
            sum += num
        }    
        return arguments.callee
    }
    func.valueOf = function() {
        return sum
    }
    return func
    }
    add.valueOf = function() {
    let sum = add.sum
    add.sum = 0
    return sum
    }
#互联网求职##实习##面经##前端#
全部评论
楼主请问下二面是要过几天还是当天面?楼主通过面试了吗?
1 回复 分享
发布于 2020-10-19 08:22

相关推荐

点赞 评论 收藏
分享
大方的大熊猫准备进厂:1.教育背景:你希望从事什么专业的工作你的主修课就是什么;成绩优秀是你应该做的,没什么可描述的,成绩不优秀也许人家在大学忙着创业呢?(成绩优秀不一定是好事,只能说明多元化的大学你上成了高中,没有真正上明白大学,反而体现了你死板,不爱社交,没有别的突出能力) 2.实践经历:你想表达的意思没有说清楚。你是说你会个性化服务,还是你有实习经历。如果没有带来,经济收益,表彰,更好的发展前景,那你还不如说说提升了自己哪些技能。你说有人给你送锦旗我都能明白你优秀,但是你说你会xxxx,你说这话谁信,证据呢。 3.入伍经历:你描述的就是你的工作职责或者你应该做的,并没有体现出来你把这个事情做好了,而且入伍经历并不能证明你能干好你要应聘的工作,不如只写经历其余所有内容都不写。 4.荣誉技能:重点突出一下,但不要过多描述,这些荣誉的含金量懂得都懂。 重点:你要应聘什么工作(具体岗位,实习生不具体),你的期望薪资
点赞 评论 收藏
分享
06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
第一份工作能做外包吗?
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

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