如果我被面试

JS

数据类型

  • Boolean \ null \ undefined \ Number \ String \ Object \ Symbol,其中Symbol是es6新增的,它的实例是唯一且不可改变的,Object是引用类型

相等性判断

  • 总共有三种,宽松==、严格===和es6新增的Object.is()
  • 简而言之,在比较两件事情时,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同, 只是总会返回 false ); 而Object.is的行为方式与三等号相同,但是有两个不同,两个NaN严格等于结果为false,Object.is反之,-0和+0严格比较结果是true,而Object.is反之
  • 请总是使用严格等于进行相等性比较,宽松的实在让人不好琢磨、记住,也容易在实际项目中出现BUG,这也是主流代码规范中推荐的做法

function *

  • 生成器函数,是一个可以作为迭代器工厂的特殊函数,当它被执行时会返回一个新的Generator(生成器)对象

Prototype

  • 每个对象都有一个私有属性(称之为 [[Prototype]]),它指向它的原型对象(prototype)。该 prototype 对象又具有一个自己的 prototype ,层层向上直到一个对象的原型为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。
  • 从es6开始,对象的 [[Prototype]] 可以通过Object.getPrototypeOf()和Object.setPrototypeOf()访问器来访问。这个等同于 JavaScript 的非标准但许多浏览器实现的属性 proto
  • [[prototype]]是对象的私有属性,而prototype却是只有函数才有的属性!

vue数据流

  • vue是单项数据流,这方面借鉴了react,v-model好像实现了双向数据绑定,而实际上其不过是语法糖

创建一个新的对象

  • 对象字面量、构造器,合并多个对象为一个对象的Object.assign,使用指定的原型对象及其属性去创建一个新对象的Object.craete,属性描述符有configurable、enumerable(可被枚举)、value、writable、get、set

改变this

  • call \ apply \ bind
  • bind会返回一个已经绑定指定this的新函数,call和apply的第一个参数都是指定的this,不同的是第二个参数apply要求的是一个数组或类数组的对象,而call则是正常的以,分割的一个个参数

事件冒泡及捕获

  • 事件捕获:当某个元素触发某个事件(如onclick),顶层对象document就会发出一个事件流,随着DOM树的节点向目标元素节点流去,直到到达事件真正发生的目标元素。在这个过程中,事件相应的监听函数是不会被触发的
  • 事件起泡:从目标元素开始,往顶层元素传播。途中如果有节点绑定了相应的事件处理函数,这些函数都会被依次触发

虚拟DOM

  • 标准的dom节点是异常复杂的,仅一个空白的div就有230多个属性,用更轻量级的 JS 对象来代替复杂的 DOM 节点
  • dom是节点树,,然后把对 DOM 的 diff 操作转移到 JS 对象,就可以避免大量对 DOM 的查询操作
  • 优化了diff的算法

清除缓存

技术相关

框架对比

  • 我只接触过Angular1,所以以下讲的都是angular1(NG)
  • NG是双向数据绑定的,VUE和React是单向绑定的,都受flux思想的影响,只是vue提供类似v-model这样的双向绑定语法糖
  • 在检测和响应数据变化上NG采用脏检测非常消耗性能而且容易出现一些异常问题,vue则使用基于依赖追踪的观察系统并且异步队列更新,所有的数据变化都是独立触发,除非它们之间有明确的依赖关系,这个好像和React异常相似
  • React和VUE都使用虚拟DOM,所以性能上都很牛逼,另外他们都利用webpack发明了新的语法,而不像NG只是作为增强了html的普通框架
  • React有点一切都是JS的感觉,而vue则是拥抱了经典的WEB三剑客
  • 可能是因为vue是汲取了他们的精华做出的比较牛逼的框架吧,个人感觉还是vue使用起来比较顺,当然有一点React生态无敌

组件开发

  • 不要重复造轮子,同时自己的技术深度还尚浅,所以组件是基于比较成熟的组件框架慢慢搞的
  • 做组件主要基于以下目的
    1.个性化的东西比较多,没有任何一个框架能够完全满足,也不可能东拼西凑影响系统统一性
    2.框架基本上是比较通用和细分的,而针对一个公司可能期望组件更加智能,所以我们会整合一些高集成的组件
    3.除了组件库我们还想集成样式库,方便以后的换肤需求实现

怎么选择组件库的

  • 看背后的团队规模和能力、看使用量
  • 对比功能和风格
  • 其实最开始我们只是要尝试做,所以其实也并没有考虑太多就直接使用了Element作为基础框架进行了二次开发

英语

  • 我认为之所以强调英语有几大原因:一是保持代码的高可读,这方面的单词量还行;二是面对错误信息等日志的态度,对于此我可以说非常从容,因为它指引着你去解决问题,哪怕是日语我都会搞明白;三是自己的技术边疆了,不会国际性语言就很可能是井底之蛙,但这方面同时也需要你有极大的求知欲,能科学上网,而我就是这个想走出去同时也能走出去的那个人
  • 我们这方面的英语其实是比较专业的,工作这几年也积累了很多,通过中英对比的方式还是很能准确理解一些文档什么的

MV*

代码规范

新技术

软技能

Leader工作

  • 分析需求,对不合理的否定掉
  • 把控任务进度
  • 安排技术分享,共同进步
  • 代码质量管控
  • 架构类的工作,解决疑难杂症
  • 普通的管理工作,例如绩效评估、招聘等
  • 但也有很不好的地方,就是不太能给前端正名,不知道怎么去邀功,这个很惭愧

为什么辞职

  • 第一家公司是后期加班特别严重而且工资升不上去
  • 这一家是因为技术氛围和产品

自我介绍

你好,我是从事前端开发的田稳杰,已经有三年的工作经验,主要研究JS和关注开发工程化,在未来希望能成为一名架构师,本人非常喜欢编程,热爱技术,乐在折腾,熟练使用前端各主流技术包括H5、CSS、JS和ES6、vue、angular、react等,同时熟悉node、python和liux等,在三年里拥有丰富的项目经验,同时在工作中有着良好的沟通能力,也认真勤奋负责,我相信我能胜任这份工作!

谈♥

  • 薪资,首先询问公司的薪资的大概水平(一般不怎么说,但万一说了你好做权衡)和福利构成以及劳动强度,再说出你期望的薪资
  • 涨薪的机会和政策
  • 试用期,时长和正常工资的折扣情况,并不忘追问,试用期的折扣工资是否会在转正后补偿
  • 加班,年假,工资发放时间,五险一金的比例
  • 年终奖的政策,和入职时长的关系
  • 是不是要高了?三年经验的行业水平是怎样的?上家公司的薪资你也看到了,且不说涨不涨,就是工作时长的增加都有2380.96元,这还是按照之前的薪资水平,所以说一点也不高啊,我之所以愿意这样,也是看重贵司的产品和平台,而且通过和技术面试官的沟通我确实也很喜欢贵司,希望和贵司一起成长
面完试,没心情记录了,我要继续学习了。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值