Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2017-08 面试总结(at,dm) #32

Open
sunyongjian opened this issue Oct 16, 2017 · 17 comments

Comments

Projects
None yet
@sunyongjian
Copy link
Owner

commented Oct 16, 2017

引入

最近两周没有什么深入研究,把八月份面试总结发一下吧。

关于面试,引用叶老湿的一句话。你的简历是自己工作的答卷,项目经历是你给面试官出的考纲。所以,我的面试一定是与我的简历、工作经历相关的,一些面试题并不一定适用于任何人,但是你可以从中了解他们考察的点,以及侧重点。基础知识可以查漏补缺。

moka

一家小型创业公司。因为同事有去面过的,他说面试感觉挺 diao 的,我就想去试一下啦,拿它先热热身,就从boss上投了简历。

一轮

  • 用 setTimeout 实现 setInterval,可不必关心返回值的类型。

    我听错了条件,我以为要注意返回值的类型必须跟原生的一样,也就是返回一个 number,并可以 clear。无清除定时器功能的马上就写出来了,但是加清除定时器,还有返回值的问题,就费了半天劲... 也没弄明白。面试官比较着急了,跟我沟通的时候,我才知道返回值不一定非要跟原生的一样。

  • 给了一个栗子,结合 pdf.js 的示例代码,找出这个栗子中为什么分辨率很低。主要是看你通过调试去解决问题的能力。

  • 然后就各种结合项目各种问呗,如何解决问题的,如何团队协作沟通的。

  • 还给了我一个题,让我回去用 React 实现一个群组的 CheckBox,其实最后看就是 treeselect 的雏形啊。我的实现

二面

  • 自我介绍
  • 最近做的一个项目,其中的难点,过程。
  • 最近做没做过技术调研,我捡我了解的说,比如redux和mobx的区别。
  • 做技术分享的时候会关注哪几个点,
    答: 它的实现原理,简单的一张图。一个简单的demo引入,并看一些实现。充分表现它的优势,然后跟现有的技术栈是否能结合,快速上手。有什么缺陷。
  • 在第一家公司有没有记忆深刻的项目,经历。项目的话就是最开始的时候,让我自己写一个页面的时候,在一周之内搞完。。有一个特效是在轮播图上加放大镜,用swiper和自己写的放大镜。当时各种努力工作终于把这个功能做完,但是忽略了兼容性的问题。在ie8,9 是无法滚动的。然后立马切换到另一个slide.js,替换上之后放大镜失效了。当时好像是插件内部阻止了冒泡行为,我那个放大镜取不到事件了。 因为已经到deadline了,通过我们的leader跟运营人员沟通,先不要这个功能了。就上了。后来查的时候,swiper2的兼容性比较好,ie8.
  • 个人的缺点 。技术上就是还是比较low, 然后就是个人的毅力感觉一般,但是最近健身感觉自己很不错。
  • 怎么算是分布式的应用呢,属于自己挖坑。
  • 问了我好多不是技术“点”的问题,都是大的面,细节很少。记不清了。

三四面

就是 hr 和 ceo 了,就是问一些离职原因,跟公司价值观方面的问题了。

总结

无论是一面的 pdf,让我实现一个功能,还是二面的问题,都是偏重于项目实战的。他们想要的是入职就能干活的人,先能负责某块开发任务。并且在独立解决问题,团队分享方面有所表现。

腾讯 (omg)

一面

  • 平常开发怎么设计 react 组件的。比如 container 组件,业务组件等等的。
  • 手写一个观察者,发布订阅模式。
  • 什么是函数式,跟面向对象有什么区别,因为我简历写了正在学习 fp。
  • 科里化,写一个
  • cache-control,http-only
  • url输入到服务器中间发生
  • redux源码
  • vue跟angular像不像
  • vue跟react的模板渲染分别是怎么做的
  • 实现垂直水平居中

二面

  • react 组件的结构,其实是问组件实例对象的结构,问题没理解。我说在 children 里就能看到。他问是吗,是什么样的,你平常应该用过 children 啊,应该知道啊。我推测 children 是数组,因为有 children.map 方法。他又问一定是吗。

    这个问题上来就暴露了我对这些细节是没有关注的,而他期望的是,你用 React,连它的实例都没看过,children 可能是一个,可能是多个也不清楚。

  • 那我再问一个特别简单的问题,组件之间的通信,比如父到子,子到父。再说一个兄弟组件怎么通信,嵌套了好多层呢?

    嵌套多层的他直接说有好几种方法,你随便说几种吧。我从来木有总结过,整个人有点懵逼,也没有回答好。后来整理了一下 React组件之间的通信

  • 再问一个稍微有难度的,组件的 state 嵌套多层的时候,我要让最里面那个 state 变化,怎么做。我开始没理解这是啥意思,他解释说 state 是 { a: { b: { c: { d: 1 } } } 这样,你 setState 的时候,怎么改属性 d 的。我说一层一层的找进去,setState 新对象。他又说那几层是可以的,假如说一百层呢,也这样吗?我就懵逼了。

    他说 react helper里面有个 immutable 的库,就是用来处理这种情况的。

    immutable 我是知道的,但是我了解的是通常处理不可变数据的。后来查了一下,应该是这种操作。

    import { formJS } from 'immutable';
    const obj1 = { a: { b: { c: { d: 1 } } } }
    const obj2 = Immutable.fromJS(obj1).updateIn(['a', 'b', 'c', 'd'], value => value + 1)
    console.log(obj2.toJS); //{ a: { b: { c: { d: 2 } } } }
    
  • 你简历上说你看过 redux 的源码,简单说一下吧。
    终于认可了我一次,说这个确实看过,能说出来。我有点尴尬了。

  • 你说你读过 《深入浅出 nodejs》,那你在项目中用过 node 吗。

  • 移动端做过吗,适配问题。750px 的设计稿,你怎么做适配,给几种方案。

  • rem的原理是什么。这个答的也不好

  • 然后就是让我问了一些问题,还跟我说你工作才一两年,你要的这个薪资肯定给不到,腾讯卡工作年限很严格,评级方面。最后就是现在不会直接给你面试结果,他们会横向比较几个候选人。

总结

腾讯面试的感觉就是,没有那么正式,都是部门的技术直接联系的你,然后二面就是部门负责人了,决定了是否入职。二面给我的感觉就是,他从 React 入手问一些基础的问题(一些需要留心注意的)。如果没有注意这些点,没有总结,或者看过类似的总结文章,是很难有条理的回答出来的。其实我不太喜欢他这种,“我觉得很简单... 你就应该会的” 的方式。但是这次我发现了自己的一个问题,就是面试的时候爱说一些了解的名词,但是实际没用过,恰好这个面试官都比较深入了解,也比较反感,他认为你这是 “不懂装懂”。所以面大公司,不会的还是尽量要说不会,不要犯了面小公司的错误。自己也确实没有做到注意总结,了解也确实比较浅显,为自己以后的工作学习敲响警钟。

阿里 (天猫)

一面

由于一面是电话面试,主要问了好多项目的问题,如何解决问题的。

  • 比如问其中一个项目,查询多字段对应处理的问题,sql语句怎么拼的,你的自定义配置是怎么回事。
  • session 和 cookie 的区别
  • 使用 redux 和 mobx 的区别
  • 什么是 bfc
  • node了解多少,用过吗
  • 算法怎么样
  • 好多问题,有点忘了,就是各种知识点... 其实百分之八九十能答出来,他也觉得不错,让我后面好好准备,架构方面,原理方面。

二面

面对面

  • 介绍一下你的工作历程(经验)
  • 我们找一个产品或者项目具体聊聊,让我自己说。
  • 介绍一下项目,技术栈,我是不会问的。
  • 你用过 vue, react。你觉得他们有什么区别。
  • 说一下你是怎么用的 redux
  • 我自己提到了通常放在 container,他问了一个 connect 怎么做到注入 state 的。我就说 connect 是一个高阶组件,注入进来的 store,通过 state 维护?他又问那是怎么实时 render 的?我说 connect 里面应该有 监听 store 的 changes 吧。最后就说没看过 react-redux 的源码,只看过 redux 的源码。
  • 看了我的一篇博客,问了一个 this.children 是实例还是 class
  • react router 的 hash ,history api 有什么区别,我说了一些表层的区别,url 的不同,实现的原理不同。他继续问还有什么内部的不同吗,我就说不了解了。
  • mobile 端有接触吗,我说做的不多,主要还是 pc 端吧,我说你可以提问。问了一个viewport的,如果 width=device-width,iphone6 上页面宽是多少,plus 是多少。如果 viewport 里设为 width=375,plus上会缩小还是放大。

总结

让我自己去聊项目,去考察我的组织、表达能力,以及沟通能力。而且这也最大程度上能了解到,关于这个项目,你自己思考了多少,主导程度。然后考察主要使用的技术栈,了解的深度如何。然后就是他们业务常用的点。刚面完,自己感觉其实还可以,因为都能回答出来,但是可能深度还不够吧。天猫的要求还是比较高的,而且面试官是从杭州过来专门面试的,也有很多候选人同时面试,只能说明自己在这里面还不够出色,不能脱颖而出。

滴滴

一面

  • 简单介绍一下自己
  • 数组的构造函数上提供了什么方法。
  • indexOf和findIndex的区别,我说没用过 findIndex
  • 写了一道题,是关于作用域的题。
    function fun(n, o) {
      console.log(o);
      return {
        fun: function(m) {
          return fun(m, n);
        }
      }
    }
    fun(0).fun(1).fun(2);
    let fn = fun(0).fun(1).fun;
    fn(2);
    fn(3);
    这种题好好看看一般能答出来。
  • react 中的某个组件嵌套很深,怎么传递 props,很不错,之前整理过。
  • redux 和 mobx 的区别。我就从实现的原理,使用方式,结合 react 等方面阐述了一下。
  • 你刚提到了 observer,这觉得它们是怎么实现的。redux(listerners),mobx(get,set) 的方式都说了一下。
  • observer 是什么模式。
  • 还了解其他的设计模式吗。我他妈一激动把面向对象说出来了,这当然不是设计模式了,是编程思维。
  • js 模拟一个并发
  • 实现两个 setTimeOut之后再做什么。1.原生实现一个串行的队列。2. 用 promise 去封装一下,然后用 promise.all/generator/async.
  • 算法,问我快速排序,说一下它的原理,我说忘了。
  • 问 es6 主要用那些新语法,我说了几个,箭头函数,解构赋值,const 声明等等... 他说最常用的不应该是 class 吗...
  • es5 实现一个继承,我差点给他写四五个。刚学 js 的时候整理过 link
  • es6 怎么判断一个数组? isArray 啊。 [].isArray ? 我说 Array.isArray(),类上的静态方法。
  • css 清除浮动用什么,我说就两种,一个是 css 树形 clear,一个触发 bfc。
  • css3 动画有什么,怎么用。就是考察 transition,translate,animation 啥的。
  • less 中的 & 代表什么意思。这个倒没关注打包后的代码,想了一下应该是上级作用域的选择器...
  • 自动化工具用什么,我说打包的话就用 webpack,其中又有各种配置,预处理,编译啥的。配置文件自己写过吗,我说写过。
  • 搭建过 react 项目的架子吗,当然。
  • 最后一个问题是,
    function fun() {} 的原型指向哪里 ?
    Function.prototype

二面

  • 顺了一下我的履历,问这次为什么打算跳槽,再上家公司时间也不长,期待一个什么样的工作。我说希望有一个技术都比我牛逼的团队。
  • 假如说团队里的大部分人技术都不如你,怎么办。我说那也挺好,我可以发挥我的长处,做一个技术 leader 的角色。又问那如果公司不给你一个 leader 的级别呢... 我就说那也挺好的,你可以成为一个重要的角色,不可或缺的人。
  • 如果你作为一个 leader,你需要什么样的下属。 我说一个不可或缺的人,一两个技术比较好的。其他不需要那么技术好,只要能胜任工作就行了。
  • 你觉得你是容易相处的人吗
  • 看你是信息与计算科学的,算法应该不错,手写一下快速排序吧。🤦我说忘了,我可以写一个冒泡或者插入,然后就写了一个冒泡。
  • 怎么判断一个对象是 object,还是 array。用 Object.prototype.toString.call() 吧。
  • 写一个节流的函数,我之前刚好看了,写了这么一个东西。
 
  const throttle = wait => fn => {
  var timer;
  return (...args) => {
    if (!timer) {
      timer = setTimeout(() => timer = null, wait);
      return fn(...args);
    }
  }
}

他说,怎么没有清定时器。我说节流函数分两种的吧,举个例子,我这个是按钮点击后,500ms 后的点击才会执行。还有一种是两个点击间隔 500ms 之内,只执行一次,防止连续快速点击。后面的没写,大概是这样

const throttle = wait => fn => {
  var timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(() => {
      fn(...args);
    }, wait)
  }
}
  • 什么是科里化,怎么实现一个 curry。curry 利用了什么特性,他说是其实就是闭包

  • 设计模式了解吗?说一下观察者,我说我简单写一个实现吧。就写了一下。

  • react 的生命周期介绍一下

  • 现在的薪资

  • 你有什么问题

    我问了一个很扯的问题,我能给团队来带什么?面试官说,不能说带来什么吧。一些本来就存在的问题,很难说加入一个人就带来质的改变什么的。最主要的还是能够独当一面吧,能够负责一个模块。

三面

  • 前两面的感觉如何。
  • 有没有什么遗憾的地方?就是前两面没大好的地方。
  • 15年毕业,你的第一家公司是 xxx,在那主要收获了什么?
  • 我提到了不断自驱,学习。
  • 最近解决的一个棘手的问题,前端拼 sql
  • react 的生命周期
  • 现在的薪资,期望薪资
  • 你有什么问题,问了一下面试官的职位,聊团队,以及我加入的项目要做的东西。
  • 最后,玩游戏吗,不玩。打篮球吗,不打。在健身

总结

来滴滴面试的时候,很自信,所以自我感觉良好。一面是特别注重基础,各个知识点的问答,想起什么来问什么。看你对基础的掌握情况吧。二面我感觉更多的在看你的情商如何了,当然我的情商不是很高,面试官最后也说了,如果我更 open 一些,会更好。说我的简历上也能看出自己尝试了很多东西,可以去突破一下。当然也问了一些技术的问题。三面是团队的前端负责人,从价值观,个人的成长规划,解决问题的能力去考察,也了解了一下期望薪资。最后的问题就是看有没有共同的爱好吧...

相对 tmall,tx 来说,didi 考察基础,但是又没那么深入,主要是对应聘者的级别要求不一样吧。tmall 的社招不仅是看你干活能力,更多的是你会不会去 push 一些东西,其实就找亮点。

腾讯 (兴趣阅读)

只有一面

  • 各种项目各种问,问的特别细,每一个地方的实现,问你的思考 🤔,以及怎么做规划排期,怎么去处理 bug 等等。

    这块就平常自己项目中,做的足够细致就行了,有时候你提到一个点,他都会对这个点进行深挖,看你对项目的细节是否足够了解,另外还有项目整体上的了解。

  • mobx redux 的区别,从简历上挖掘出的点,去看你是否总结。

    mobx 我做过简单的总结

  • 自己做过的前端优化。经典的面试题,回答的点还是很多的,从 web 来说,从[浏览器] 发起一个 [请求],服务器[返回],[页面渲染],[css渲染],都有的说,我也有简单的总结

  • react 和 vue 有什么区别啊,特别注重考察个人的总结;

  • 对前端安全的认识

  • 劫持遇到过吗,主要有什么。我说了一个 dns 劫持。

  • webpack都是怎么用的

  • webpack.dll ? context这个参数是干嘛的,我忘了...

  • react的性能优化有没有了解过啊,你都是怎么做优化的。
    说实话,react 的优化我很少做 - -,通常 react 的 diff-dom 带来的便利很少关注它的性能问题。不过面试我当然不会说这个,就说了几个点,shouldUpdate,pureComponent,immutable 等等的。不过他似乎不是很满意,继续问我有没有更深入的,全面的优化。我就说局限于此了。

  • 问我 angular 用的怎么样,我说项目中没用过。

  • 最后聊了一些他们日常的工作,主要是后台管理,运营去推送阅读等。项目目前是 angular 做的,后期会像 React 转。

总结

自己觉得能回答上来个 70% 左右,他最终告诉我,今天的表现能打个七八分吧(满分十分)。然后他就去跟他的 leader 沟通了,回来也没直接拒绝我,就给了我一些建议,要对项目整体的把控多一些,项目的思考,横向多去了解,跟你配合的同学(rd ?)做了哪些工作,还说不过也不着急,毕竟你还年轻。黑人问号脸。

自己的确没有去带整个项目的经历,更多的是个人负责一个模块,虽然对其他人的工作也有了解,技术上的架构也略知一二,不过还是平常的思维有局限性吧,对整体的思考太少,不过我觉得这虽然是今后发展的方向,但是目前还是专精某些点,纵向多做一些深入工作吧。

美团 (商超)

一面

  • 从html,css开始
  • 了解盒模型吗,现在给定一个 width:200px的盒子,他的width,padding,border,margin都是怎样的
  • html的标签分哪几种,列举一些
  • img是哪种? 我回答行内。
  • 然后他就问一个img和一个span,里面一段文字,怎么排列。我说上下,img不是行内吗,怎么会上下。。
  • 如果实现文字环绕排列 img,应该怎么做。图片 float
  • 这个图片不定宽高,怎么实现在盒子内垂直水平居中。
    1. flex 2. transform: translate(-50%, -50%) 3. display:table-cell
  • 说一下float这个属性
  • 你提到了bfc,有两个盒子,margin重叠的问题,怎么解决
  • 有一个input,怎么统计他的输入 0/50,除了事件还能怎么统计
  • css3了解吗,主要用什么,animation,transition,translate,transform 这四个是干嘛的
  • 实现一个进度条加载,从0 到100
  • 'use strict' 是怎么解析的
  • setTimeout,setInterval。它的参数,如果在setInterval里5ms不断调用,会有什么问题吗
  • setImmediate 和Process.nextTick 的区别
  • 写一个检测数据类型的方法。直接写了个Object的toString
  • js里面的数据类型,把布尔忘了- -
  • 什么是柯理化啊
  • jquery用过吗,
  • https了解吗
  • https一定安全吗,然后怎么解决呢。实现一个站点从 http 到 https的迁移
  • localstorage的跨域问题,最大存储是多少,超出了会怎么办
  • 跟cookie的区别
  • sessionStorage的区别
  • http的状态码,200,500,301,302,304
  • 一个url从浏览器输入到解析经历了什么
  • 你提到了三次握手,四次挥手是干嘛的
  • 忘了...

二面

  • 各种优化
  • 之前做的项目大概介绍一下,技术栈等等
  • 各种项目里的问题
  • 有没有什么优化的经验,方案。不局限于打包。
  • webpack打包的优化
  • 最近项目解决的一个技术难点
  • 最近在学什么,对什么感兴趣
  • 最近做的最成功的一次分享是什么
  • 是不是热衷于团建。
  • 现在已有 getData(id, callback) 方法,根据 id 发一个请求,并把 data 传给 callback。你写一个getDataCache的方法,实现相同的id,只发一次请求,即数据可以被缓存起来。
  • 说一下http缓存,其实就那几种。
  • 你们用的哪种,我说 304 多一些,为什么不用 200,效率方面 200 更高一些啊。我说的确,我们也是通过 hash 给文件打版本号,结合 maxage,让浏览器判断要不要重新请求的。
  • 怎么学习前端知识啊
  • 最近在看什么书
  • 除了写blog,还有什么其他的,工作之外做的
  • 还有几个忘了

三面

三面是一个技术总监,感觉人挺不错的。

  • 看你之前都是一年一跳槽,是什么考虑呢
  • 为什么要从事前端呢
  • 看你学的是数学,为什么最后学前端。为什么上大学的时候没好好学
  • 对美团怎么看
  • 问你一个算法题
    规律是这样的:
A B C D ... Z AA AB AC ... AZ BA BB ... CA ... ZA ... ZZ AAA AAB ...
1 2 3 4 ... 26 27  

做一个程序,让输入一个数字,输出具体的值。这个问题我也描述不太清,其实就是一个类似进制转化的问题。

  • '192.168.0.1'把它转化成位数。进制的偏移问题

  • 你觉得自己有什么缺点

  • 你觉得你之前做的一件最酷的事情是什么

  • 你有什么想问的。大概了解了一下美团超市是干嘛的,介绍的时候还问,想不想做我们的这个商超,感兴趣吗。当然说感兴趣

总结

第一面特别细,之前很少问到的 html,css,还有 jQuery,都问了。这些地方还是多少能记着一些的,能回答个差不多。并没有问你项目中使用的框架,可能关注的点不同,他们更关注基础吧。二面其实就关注性能优化比较多了,还问了很多学习,分享方面的,估计是想看你是不是热爱学习啊,学习方法,喜欢分享的话能给团队带来新鲜度,大部分团队都是有每周的分享的。他问的问题我都是比较喜欢的,开放性的话题更多一些,你能更好的展现自己。三面问了一些基础的计算机问题,这些是我不擅长的,不过大概说了一下思路,并用 js 去实现。还有很多就是面试常问的问题啦,面试前一定要考虑,做准备。比如说做过最酷的一件事,无论是什么事,只要你自己觉得酷就行了,个性面试官。总结下来就是,对这个部门的面试感觉,觉得不错,进去做的工作是移动端,这也是我之前很少做的,也不用什么 react。这个部门是一个新成立的,团队也是从 0 开始,这种团队也有好处也有坏处,好处是大家都是新人,项目也是全新的,适合你发挥。不好处就是太新了,加班是肯定的,压力也会大一些,你长时间都会处于业务中。

@sunyongjian sunyongjian changed the title 2017-08 面试总结(几个大厂) 2017-08 面试总结(at,dm) Oct 17, 2017

@jxZhangLi

This comment has been minimized.

Copy link

commented Oct 20, 2017

厉害,大神问下你,你是如何在两年内,及要上班又要学习,还能学习这么多东西。我觉得自己2年学习太慢了。

@sunyongjian

This comment has been minimized.

Copy link
Owner Author

commented Oct 20, 2017

@jxZhangLi 不是大神,还是菜鸟,毕业两年了,比我厉害的真的是见了太多了。我不是计算机科班出身,去年开始学前端,并从事前端,就是基础不如别人才要多学习啊。也没有什么特别的学习计划,不会不懂的太多,去年就是工作什么不会就学什么。今年是一般一段时间内都有一个比较想研究的点,比如说中间件思想,就找资料从各个方面(来源,应用)去弄清楚。就是不要孤立的去学习吧,感觉知识都是相同的,可以联系到好多知识点。最近受大神启发,他教我学习的时候要建立自己的知识体系,有空就去补充。还有就是结合应用场景,不同的场景处理方式不同,要注意总结。工作中学习,比如我去年去用 react-redux 的时候,对它这种写法很不适应,就去看 redux 的源码,并去学习函数式编程,虽然我现在还没学明白 fp,就慢慢学呗,闲暇时间。
一点感想,分享给你。

@happylindz

This comment has been minimized.

Copy link

commented Dec 14, 2017

题主写的不错,能够短时间有这么多前端知识的基础令人敬佩,建议可以多积累一些计算机基础知识,相信会有更大的进步,加油。

@eyea

This comment has been minimized.

Copy link

commented Dec 15, 2017

很赞,加油!

@sunyongjian

This comment has been minimized.

Copy link
Owner Author

commented Dec 31, 2017

@happylindz 对。从事这一行,基础决定了自己的上限。自己还是需要继续加油的。。

@brickspert

This comment has been minimized.

Copy link

commented Jan 27, 2018

数组的构造函数上提供了什么方法?
不是说原型上有什么方法吧?

应该是Array.from() Array.of() Array.isArray

@sunyongjian

This comment has been minimized.

Copy link
Owner Author

commented Jan 27, 2018

@brickspert 对,不应该说构造函数,看我的回答是原型上的方法,有点矛盾了。感谢指出

@zhouyingkai1

This comment has been minimized.

Copy link

commented Mar 8, 2018

很厉害 佩服

@jumpDuckEgg

This comment has been minimized.

Copy link

commented Mar 12, 2018

楼主我想一下,你是怎么巩固旧知识,因为我也看了很多的基础知识,能理解,但是就是记不牢固,总是会忘了一点,请赐教

@sunyongjian

This comment has been minimized.

Copy link
Owner Author

commented Mar 12, 2018

@jumpDuckEgg 首先,我日常没有巩固工作中用不到的“旧”知识,但是一些重要的东西是比较印象深刻的。比如 HTML 常用标签的一些特点;css 常用选择器、权重以及 css3 动画等常用特性;js 的闭包、作用域、原型链等;http 协议的一些原理、报文、缓存方案;常见编程思想和设计模式。这些都应该是我们能按照自己的语言阐述清楚的,如果这些类似的不牢固,就需要反复的应用加深印象、理解。另外,有一些随着工作场景走的,比如 react 的各种特性,我可能这两年很熟悉,但是下去几年谁知道用什么开发,说不定过两年 react 我就忘了。还比如 es6 的各种新特性,各种方法,肯定不可能都记住,能记住常用的即可。像webpack 的配置,虽然目前我用的比较多,但也经常忘记某些配置的含义,比如 source-map 的区别,一些 plugins 的 options,这种跟工具的配置复杂度相关,没办法,我们忘了就查一下文档就好了。

但是!!! 最重要的是,如果你要跳槽。。。面试常问的,你又没掌握好的,当然要面试前好好复习一下啦,不然怎么应对面试官,怎么显得自己基础好,怎么装 x。毕竟面试造火箭,入职拧螺丝~

@riskers

This comment has been minimized.

Copy link

commented Mar 12, 2018

@sunyongjian 我觉得,面试中如果被问到 webpack 某个配置项的意义或者插件的作用,有点太过了。我一般面试关于 webpack 只问 webpack 的工作机制。毕竟,一查就能查到的东西没什么问的必要。

@sunyongjian

This comment has been minimized.

Copy link
Owner Author

commented Mar 12, 2018

@riskers 嗯,我是碰到过问的,我觉得还好吧,比如问一下项目开发如何提高构建速度、开发环境和生产环境的区别等常见的场景,当然不需要特别具体,但起码阐述清楚,能证明你是对此有研究的,而用过一两次,问一个插件的意义当然是可以顺利说出的。不过我觉得这些东西倒不是最主要的,每个团队都有自己的 cli。😆你问的属于更深入了啊,工作机制都了解后,基础的东西肯定不用问了。

@bigggge

This comment has been minimized.

Copy link

commented May 29, 2018

有一个input,怎么统计他的输入 0/50,除了事件还能怎么统计

这个还有什么方法?

@sunyongjian

This comment has been minimized.

Copy link
Owner Author

commented May 29, 2018

@bigggge 我也没查到,感觉只能通过事件统计

@lawpachi

This comment has been minimized.

Copy link

commented Jun 8, 2018

请问下作者 腾讯二面的 state 嵌套多层的问题,const obj2 = Immutable.fromJS(obj1).updateIn(['a', 'b', 'c', 'd'], value => value + 1) 如果有100层,updateIn的第一个参数的数组也需要100个值啊。感觉Immutable并没有解决一层一层的找进去的问题呀。

@Dcatfly

This comment has been minimized.

Copy link

commented Jun 9, 2018

@sunyongjian

react state 的更新机制要保证 setState 的是一个新的对象 res

你怕是有什么误解。。

@sunyongjian

This comment has been minimized.

Copy link
Owner Author

commented Jun 10, 2018

@Dcatfly 嗯,感觉说的有问题,待会重新整理一下。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.