Skip to main content

8-14

1 8月15日面试问题

  1. Ts是如何找到d.ts文件的?
  2. React数据更新页面的原理
  3. ✅ React的生命周期
  4. ✅ 职业规划
  5. ✅ git的rebase和reset区别
  6. ✅ 薪资如何谈
  7. 你心目中的架构是什么

2 git的merge,rebase,reset,revert区别

git的merge和rebase区别

名称作用示例参考
rebase用于把一个分支的修改合并到当前分支,提交记录不会杂糅在一起git rebase main
git rebase --continue
git rebase --abort(中断)
[1][图解git rebase](https://www.jianshu.com/p/66fda4c433fa)
merge用于把一个分支的修改合并到当前分支,提交记录杂糅在一起git merge main

用merge合并图示

img 用rebase合并图示

img

git的reset和revert区别

名称作用示例参考
reset回退版本,可以指定退回某一次提交的版本git reset HEAD
revert回退版本,会多出一条commit,用于回滚git revert HEAD
soft,mixed,hard区别
名称说明备注
--mixed为默认,丢掉暂存区的文件,并回到目的点
--soft不会丢掉暂存区和工作区的文件,并回到目的点跟 checkout 类似(将HEAD移动到目的点)
--hard丢掉暂存区和工作区的文件,并回到目的点

3 React的生命周期

[1][React生命周期图](https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/)

image-20220816173927757

[2][React 生命周期详解](https://segmentfault.com/a/1190000021827650)

这个图可能好看一些

img

阶段说明

阶段一些常用钩子触发条件
挂载阶段constructor、render、componentDidMount/
更新阶段shouldComponentUpdate、render、componentDidMountnew props | setState | forceUpdate
卸载阶段component­Will­Unmount/

4 在JS中,如何让(a===1 && a===2 && a === 3)(严格相等)的值为true?

[1] https://juejin.cn/post/6844903725442531341

image-20220816181619113

第一种:(a==1 && a==2 && a == 3)(非严格相等)

const a = { value: 1 }
a.valueOf = function(){
return this.value++
}

console.log((a==1 && a==2 && a == 3))
=>> true
原理

== 或者 + 操作符出发了类型的转化,以下是转化方法

ToPrimitive(input, PreferredType?)

根据输入的 PreferredType 会有不同转化情况:

  • 如果是基础类型,则直接返回
  • 如果是对象类型,则调用valueOf
  • 如果是以上都不是,则调用toString
  • 如果以上都不是,则抛错 TypeError

如果 PreferredTypeNumber, 那转换算法就会像上述说明的顺序执行,如果是 String,步骤2和步骤3会交换顺序

如果 PreferredType 为缺省值,则 Date 类型会被当作 String 类型处理,其他变量会当作 Number 处理

如上是操作符 +== 调用 toPrimitive() 的执行过程

第二种:(a===1 && a===2 && a === 3)(严格相等)

var value = 0; //window.value
Object.defineProperty(window, 'a', {
get: function() {
return this.value += 1;
}
});

console.log(a===1 && a===2 && a===3) // true

总结

以上两个题目都考察的是 在操作过程中,如何劫持并更改数据,第一题可以在 类型转化 中做处理,而第二题可以在 属性描述符 中做处理

2 霖呆呆的中大厂面试记录及2年前端薪资对比(附赠学习方法)

[1][霖呆呆的中大厂面试记录及2年前端薪资对比(附赠学习方法)](https://juejin.cn/post/6844904181627781128)

3 前端2全栈工程师职业规划

前三年目标(从毕业时间开始.2021.7)

计划目标安排时间
1.深入前端一些库原理、例如React、Vue、Webpack、babel等
2.熟悉前端常见业务
1.熟悉前端常见业务,能够快速搭建项目、开发(核心)
2.熟悉前端常见架构,并运用于项目中(核心)
星期一
Node后端开发1.了解Node的应用场景
2.将Node运用于实际项目
星期二
数据库设计1.了解常见数据库,以及各自的适用场景
2.将MySQL作为重点学习数据库(核心)
星期三
Rust后端开发1.学习Rust基本语法
2.将Rust应用于实际项目
星期四
数据结构和算法保持思维活跃星期五

说明:周六日为复习日

发展方向

方向关键词
技术技术顾问
管理技术总监
创业积累人脉资源

4 数据结构和算法

问:都刷了哪些题目?

从结构来看,线性表、栈、队列、有一部分树的题目

从方法来看,动态规划、前缀和、哈希表、双指针

5 计算机基础

[1][马士兵仅用30小时就把计算机底层原理、操作系统、数据结](https://www.bilibili.com/video/BV1va411y7Hy)

前言

适度打开计算机底层,因为它的知识量广而深,要抓住当前的主线!

目的

  • 知道计算机如何运行的
  • 过面试这一关

进大厂

最佳时间:3-5年

原因:1.心智成熟 2.熟手

跳槽时机和薪资

时长薪资
干1年9k
干2年16k

进大厂前薪资最好达到20k以上

忘掉学历的前提:1.技术 25k以上 2.团队leader

6 谈薪资

重点

  • 了解公司薪资结构
  • 给一个区间范围,税前xx-xx,稍微上浮一点
  • 上一家公司的薪资应该是综合的

原则

不要太早的亮出自己的底牌,先反问对方,公司的薪资结构是怎样的

其中,薪资结构包括

1.五险一金 2.每个月的工资构成(底薪+绩效+餐补+交通补等等) 3.12个月的基本薪资+季度奖金+年终奖等等 4.涨薪机制(一年有多少次考核晋升调薪机会、KPI考核)、期权等等。

两个点:

  • 聊到五险一金时,如果你想了解的更细,还可以继续问对方五险一金的缴纳比例
  • 对于休假、加班制度等等如果聊到时也可以顺带了解更多的信息,看看公司的薪资结构是否完善

最后,根据所了解到的信息、自己的年收入预算和岗位在招聘岗位上挂的薪资范围,进行算估值,然后和对方说:

我希望的薪资是税前xx-xx(一个区间)来进行回答(这个范围比自己预估的高一些,避免HR有意压价而吃亏)

上一家公司的工资多少

最好的回答应该是,除了说每个月税前薪资之外,还包括其他福利,如餐补、车补、季度奖、年终奖等福利都说出来,然后综合说:加起来年薪大概在多少

综上,当前税前13-14k,期望薪资是税前14-15k

[1][怎么跟 HR 谈薪资?](https://www.zhihu.com/question/34557602)