cosyer's Blog

Blog


  • 首页

  • 友链

  • 留言板

  • 归档

  • 关于

  • 搜索

面试 标签

5月
26
更新于
5月26
2020
知识

面试问题集锦

发表于 2020-05-12 | 热度 ℃
| 字数统计: 6,791 (字) | 阅读时长: 23 (分钟)

请做一下自我介绍

回答提示: 一般人回答这个问题过于平常,只说姓名、年龄、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,要突出积极的个性和做事的能力,说的合情合理企业才会相信。

你最大的优点是什么?

回答提示: 沉着冷静、条理清楚、立场坚定、乐于助人等,加上例子如:我在XX经过一到两年的培训及项目实战,加上实习工作,我想我适合这份工作。

说说你最大的缺点?

回答提示: 这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、非常懒、工作效率低,企业肯定不会录用你。要从自己的优点说起,中间加一些小缺点,最后再把问答转回到优点上,突出优点的部分。


阅读全文 »
2月
08
更新于
2月08
2021
Vue

vue面试题记录

发表于 2020-04-23 | 热度 ℃
| 字数统计: 12,096 (字) | 阅读时长: 50 (分钟)

vue 双向绑定的原理

采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调,实现视图刷新。

具体流程: Vue中先遍历data选项中所有的属性(发布者)用Object.defineProperty劫持这些属性将其转为getter/setter。读取数据时候会触发getter。修改数据时会触发setter。

然后给每个属性对应new Dep(),Dep是专门收集依赖、删除依赖、向依赖发送消息的。先让每个依赖设置在Dep.target上,在Dep中创建一个依赖数组,先判断Dep.target是否已经在依赖中存在,不存在的话添加到依赖数组中完成依赖收集,随后将Dep.target置为上一个依赖。

组件在挂载过程中都会new一个Watcher实例。这个实例就是依赖(订阅者)。Watcher第二参数是一个函数,此函数作用是更新且渲染节点。在首次渲染过程,会自动调用Dep方法来收集依赖,收集完成后组件中每个数据都绑定上该依赖。当数据变化时就会在setter中通知对应的依赖进行更新。在更新过程中要先读取数据,就会触发Wacther的第二个函数参数。一触发就再次自动调用Dep方法收集依赖,同时在此函数中运行patch(diff运算)来更新对应的DOM节点,完成了双向绑定。

  • 每一个组件默认都会创建一个 Watcher,自定义的 watch 和 computed 方法也会创建 Watcher

Object.defineProperty()实现双向绑定的缺点

  1. 只能监听某个属性,不能监听整个对象
  2. 需要使用for in遍历对象属性绑定监听
  3. 不能监听数组,需要重写数组方法进行特异性操作
  4. 会污染原对象

阅读全文 »
3月
30
更新于
3月30
2020
知识

面试经验分享

发表于 2020-03-30 | 热度 ℃
| 字数统计: 2,322 (字) | 阅读时长: 8 (分钟)

面试流程

大公司面试无论是实习还是校招,普遍存在面试轮次多,面试周期长的特点,就拿腾讯来说,如果你想成为暑期实习生,大概需要四到五轮面试,3-4 轮技术面+一轮 HR 面试,每次面试时间大概在 0.5-1 小时之间,推荐对自己能力没有把握或者缺少工作经验的同学尽可能在大三下学期找找实习,去自己想去的公司实习,因为大三的暑期实习既可以丰富你的履历,并且实习期间好好表现都是可以相对容易地通过转正,拿到校招 offer。

在申请实习或者校招 offer 的时候,尽可能多找人帮忙内推,因为大公司部门比较多,你如果直接从官网上网申的话,简历不容易被人查看,找认识的师兄师姐帮忙内推的优势在于:

  1. 能够更有效增加你的简历的曝光,让部门主管能够直接查阅到你的简历
  2. 加快面试进度,联系师兄师姐提前知道面试结果
  3. 内推或者网申(可能有笔试)完之后,就等待面试官打电话给你,一般他们会跟你通过电话或者短信确认现在是否方便或者约个时间进行面试,面试的方式也分为电话面试,视频面试,现场面试等等。

阅读全文 »
2月
18
更新于
2月18
2021
知识

面试题整理归纳

发表于 2018-06-23 | 热度 ℃
| 字数统计: 7,921 (字) | 阅读时长: 30 (分钟)

字符串扩展的方法

  • includes():返回布尔值,表示是否找到了参数字符串。数组也可以 a[1]=1 且能判断undefined
    1
    2
    3
    4
    5
    6
    var a=[1,2,3]
    a[4]=5 // [1, 2, 3, undefined × 1, 5] empty
    // a[3]=undefined [1, 2, 3, undefined, 5]

    a.indexOf(undefined) // -1
    a.includes(undefined) // true
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
    1
    2
    3
    4
    5
    6
    // polyfill
    if (String.prototype.startsWith) {
    String.prototype.startsWith = function (search, index) {
    return this.substr((!index || index < 0) ? 0 : index, search.length) === search;
    }
    }
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。 str | index
  • repeat():返回一个新字符串,表示将原字符串重复n次。参数如果是小数,会被取整(不四舍五入)。参数是负数或者Infinity,会报错。0/NaN返回空字符串,参数是字符串,则会先转换成数字,不传则为空字符串。
  • padStart():头部补全。
  • padEnd():尾部补全
    1
    2
    3
    4
    5
    'x'.padStart(5, 'ab') // 'ababx'
    'x'.padStart(4, 'ab') // 'abax'

    'x'.padEnd(5, 'ab') // 'xabab'
    'x'.padEnd(4, 'ab') // 'xaba'
    如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。默认使用空格

阅读全文 »
11月
18
更新于
11月18
2020
React

react面试题记录

发表于 2018-06-07 | 热度 ℃
| 字数统计: 10,197 (字) | 阅读时长: 39 (分钟)
reactInterview
阅读全文 »
陈宇(cosyer)

陈宇(cosyer)

不去做的话永远也做不到。

159 日志
10 分类
51 标签
RSS
GitHub Twitter E-Mail FB Page
推荐阅读
  • Callmesoul
  • JsTips
  • Personal Site
  • Resume
© 2021 陈宇(cosyer)
终于等到你(UV):   |   欢迎再来(PV):
Blog总字数: 312.5k字
苏ICP备17005342号-1