自我介绍
本人双非本科,目前大四在读,JS,TS,LeetCode,Vue,React,算法爱好者。 座右铭:学如逆水行舟,不进则退!在今年 7 月份在某电子公司实习过,有过一段前端开发实习经历,8 月份正式踏入秋招的征途,投递了许许多多的公司,面试过腾讯、字节、滴滴、美团、快手、网易、阿里等公司,也面过一些中小型公司,整个过程也是坎坷,在此简述一下秋招结果:
- 腾讯多次倒在一面
- 字节跳动跳到二面截止
- 滴滴三连面,倒在最后一面
- 快手倒在一面
- 网易互娱流程走完,等待 OC(offer 审批失败)
- 美团技术面走完,已谈薪(offer 审批失败)
- 最后还是进了腾讯,没有留下遗憾(目前已在鹅厂工作啦)
我们的征途是星辰大海!
阅读须知
从 10 月 23 日结束了美团技术面后,我也宣布自己秋招彻底结束了,推掉了其它公司相关的笔试面试邀请,给自己放了一个周末假期,我想我也应该给自己一点时间放松一下,去洋湖走了一遍,新兴的洋湖水街还挺不错的~
原本呢我是没打算写下这篇文章的,一方面整个秋招下来我有了一点疲惫,在结束的那一刻,我瞬间感觉压力少了很多,终于能结束秋招了;另一方面,人都是有一定惰性的,休息了一段时间,状态方面也没调整过来,那么这篇总结性文章就一直鸽着。
其次,整个秋招可谓是一言难尽,正如一句话:"一个人就是一支军队"
。在秋招征途中,几乎每天都是笔试面试这样的安排,面完之后复盘总结,查漏补缺,输出博客。
成功是一个过程,并不是一个结果。
既然我决定要写下这篇文章,那么这篇文章定属 精华,用这一篇文章来好好总结一下秋招之路。
在此,我想对阅读这篇博客的你说几句话:
首先,我会把我自己的大厂面试经验分享给大家,但是由于技术水平与个人经历的区别,可能这些面经对你没有太多帮助,也不敢保证你通过我的面经问题就能获得成功,我能做的就是保证它的完整性和真实性。
其次,我想和各位备战秋招的同志们说说我对于秋招的一些看法,以及我的面试经验。并且希望你能有一定的耐心能够看完本篇博客,我会尽量控制文章内容篇幅,给你一个不错的阅读体验,希望能够对你有所启发和感悟。
然后,我希望各位读者能够 海纳百川,有容乃大
,对于本篇博客中表述不太准确的地方读者们可以提出指正,也是学习和接纳的机会~
最后,本文主体内容更多的会与前端学习挂钩,但并不代表其它岗位没有参考价值,下文会包含对于面试经验,春秋招时间安排等等干货内容。
一言难尽の秋招
我想,备战秋招的伙伴们应该感同身受,确实是一言难尽,秋招不仅是比学习能力,更是比体力和心态,这些都是成功之前不可或缺的部分。我仅仅用两样东西来总结一下秋招我做了啥:
1、从实习那段时间开始,我就一直折腾着 github,从下图中提交记录应该就能明白整个秋招备战之路了,通过笔试面试,也是一个查漏补缺的过程,我将遇到的一些问题,进行了复盘总结,然后整合到这个笔记仓库里面 小狮子前端の学习整理笔记 ,一图胜千言(已获 200+ star,如若您觉得不错,也可以 star 收藏支持一下)
2、有的时候,没有备忘录这个东西,我都不知道自己有投递过多少数目的公司,参加过多少次笔试面试,因此,在这个时间段里,我给自己列了一份秋招清单,好让自己随时更新秋招进度,也比较建议小伙伴们这样做,一份清单一目了然,也能随时知道自己的进度,省去官网一个一个查。
Chocolate 同学の面经
由于篇幅所限,这里我就不逐一在这篇文章整理表述了,小伙伴们可以按需查阅,下面都是我面试过程中遇到的一些问题,但中间多少都掺杂了一些个人的一些表现以及和面试官的互动,另外,对于大厂面试官,都比较喜欢从一个点切入往深了问,并且从下列文章中,我也有写对于面试整个过程的体验,我个人比较喜欢有引导性的面试。
我觉得面试嘛,是一个双向选择的过程,面试也是要与面试官有一些互动,而不是单纯你问我答,答不出来直接拒掉的结果,这样与做一套试卷有啥区别呢?同时,我也有询问过字节跳动飞书的面试官,我询问:字节跳动对于校招生的一些要求,希望招一个怎样的校招生?
面试官答复说:简单来说,我们招优秀的人,我们更加考察地是面试者的综合能力,比如沟通表达能力,强有力的学习能力等等。
简而言之,面试是一场综合能力的考察,而非你问我答做试卷的形式。在此不得不说字节跳动的面试体验是非常不错的,面试官对于你不太清楚的问题,都会有一个引导,我当时在面试的时候遇到遗忘的地方,通过面试官的引导,自然也回答了出来。
接下来,将是满满的干货正文了,诚意满满,大家可以根据目录选择阅读~
面试整体流程
在介绍春招和秋招之前,我有必要和小伙伴们说一下整个面试流程,让大家清晰地认识面试。
春招和秋招的整体流程基本差不多,我只做简单介绍,比如有哪些投递网站,怎么投递这些我就不再赘述了,网上一搜就是一片。实在不行的话,你也可以评论区留言,我会为你解答,大致流程如下:
(1)投递简历
一般情况下以官网投递为主,找内推,能早一点投尽量早一点投,最好是参与提前批。
(2)内推
对于参与校招来说的话,我个人觉得有没有内推区别是不大的,你投递的时候填了内推码,并不会对于你的笔试和面试有很大帮助,既然这样,是不是不用这个内推码了,这个我觉得的话,既然大家都有填写内推码,还是可以并且必要填一下的。比如在牛客网上找了内推码,就可以询问自己的面试流程,查看简历状态等。
因此,不要认为有人给你内推了,校招面试或笔试流程就有很大优势了,据说是参与内推的话,HR 会有一个强提醒,一周之内必须查阅你的简历,这样就能更快筛选到你的简历,好给你发笔试或者面试邀请。故我推荐大家投递时最好是找相关师兄/师姐或者学长学姐来内推一下,尽管好处和优势不是很大,至少没啥坏处是吧。
(3)提前批
对于大厂来说,都会有提前批。在此说说提前批的好处:如果准备充足的话,提前批正如字面意思,你会比同一批校招的人更早拿到 offer ,提前拿到 offer 结束春/秋招难道不香么?
其次,提前批投递了,相当于多了一次机会,一般来说,提前批面试就算没有通过,你还有一次正式批的面试机会,比没有参与提前批的同学多了一次机会。
然后,提前批往往都不会有笔试,因此,面试难度会相对高一点,但是对于准备充足的大佬来说,都一样。而往往大厂笔试都会刷掉好大一部分校招生,提前批没有笔试直通面试难道不香么?
备战春招(时间 + 目的)
每年春招开始的大致时间是:每年 3 月份到 5 月份,投递时间越早越吃香(前提是准备充足)
目的
(1)实习的机会
对于大三/研二的同学来说,春招就是一次很好的找实习的机会,一般学校在这个时间段都是允许同学们外出实习的,这个实习经历也是非常重要的:
- 大三/研二同学有了实习机会,对于不错的公司,可以秋招的时候直接转正,那么就无需备战秋招了,就不必担忧自己工作问题。
- 对于大三/研二同学,当你拿到了大厂实习 offer,一般情况下,公司不会要求你很早的就去报到,多数以暑假那段时间为主,并且一般大三结束了,大四很少有课程,可以实习好几个月的时间。
- 对于大三/研二同学,就算没有转正机会,但是这一份实习经历,一定会在秋招帮助你,为你的秋招保驾护航。
- 对于大三/研二同学,你可以获得面试经历,增长见识。
因此,对于大三/研二同学,我建议不管能不能拿到这一份实习 offer ,你都要去参加一次春招,这对于你找工作很有帮助!
(2)毕业生的最后一次机会
对于大四/研三的同学来说,春招可能就是最后一次机会了,因为并不是所有人秋招都能得到满意的工作,各种因素情况发生都有可能,那么春招就显得格外重要了,但是春招岗位相对于秋招就少了很多了,毕竟你已经错过了一次机会了。
可是,反过来说,大佬已经在秋招都确定好自己的去向了,因此也不会在春招与你竞争了,那么对于准备好的你来说,找到一份不错的工作机会还是挺大的。
额外补充
春招时间段,大家都习惯称 金三银四铜五
,那么如果你准备充足,3 月份就是黄金时期,可不要等到 5 月份了才开始投递简历,那时基本上都是捡漏了。
备战秋招(时间 + 目的)
每年秋招开始的大致时间是:每年 8 月份到 10 月份,投递时间越早越吃香(前提是准备充足)
目的
(1)毕业生的黄金时间
对于准大四/研三的同学来说,秋招无非是黄金时期,这个时候就不是拿实习 offer 了,而是找工作的 正式 offer,这个可千万不能错过,而且也是能够提前批拿到的话是再好不过了。
(2)还在实习怎么办
可能在春招的时候会有一批校招生拿到了实习 offer,7~8 月份可能还在实习,但其实影响不是很大,一般公司对于实习生的话,不会要求加班,而且校招的笔试多半会选择周末晚上 7 点-9 点。面试的话一般都是可以沟通的,因此,完全有时间参加的,只是需要调整一下时间。
不过,当前实习的公司本来就是大厂或者自己还算满意,并且感觉自己转正概率比较大的话,推荐好好准备转正答辩相关的工作,如果转正成功,就不必踏入秋招的征途了,轻松很多,工资也拿了,工作也顺利得到了,岂不美哉。
一份优秀的简历
在你投递之前,一份优秀的简历能够让你通过 HR 筛选,直达笔试/面试。而对于如何书写一份简历这一块,本文是不会教你怎样写一份简历,不会定下你的简历应该是怎样的,因为每个人经历和信息都有区别,并且每个人的简历风格也会不一样,因此,本文就不赘述一份简历应该写哪些模块。
在这里我想要说的是,一份简历不是自己觉得怎样就怎样,这份简历是要给面试官和 HR 看的哇,太过花里胡哨肯定是不行的。另外,简历上面要体现一下重点,比如你的 专业技能 模块,对于你比较熟悉的部分,你可以进行加粗一下,引导面试官去看,让这场面试一小部分时间是由你来主导,而非你问我答的形式。
其次,有的同学可能觉得自己在校做的项目与自己岗位不相关,然后就没有写上,最后项目经历那一块空很多,整个简历一页都不够,看起来很空。这显然也是不行的,如果这个项目很有价值,比如获得了服务外包奖项,省级奖项,那么是很有必要写上去的,反过来想一想,如果不写的话,那么这份奖项岂不是很廉价,关键是自己付出过的。
我们动用逆向思维想一想,面试官难道真的很在意你的项目经历嘛,就我个人而言,整个秋招过程中,很少有面试官对于一个项目问题问的特别深,往往都是从这个项目挖掘一点基础知识来提问,比如经典的登录那一块你怎么实现的,跨域通信项目怎么做的,介绍你在这个项目中遇到了什么问题,怎么解决的?如果是一个团队项目,可能会问你在团队中你的角色定位等等一系列问题。
其实,站在面试官的角度来看的话,对于校招生的在校项目都是比较简单的,往往都是通过学习跟着视频做的,而对于团队型项目,尤其是获奖过的项目,面试官是比较感兴趣的,他们会询问你的角色定位,团队是如何分工协作的等等,具体问题牛客面经很多,读者可以详细查阅。
当然,项目经历丰富的大佬可以完全忽视下述文字。
在这里,我想说的是既然这个项目你获奖了,就很能体现出团队的合作能力,而对于团队中的你来说,足以证明自己的团队合作以及学习能力了,在上文我提到过了,校招招怎样的校招生呢?没错,综合能力优秀的人。虽然这个项目可能与我做的岗位不太匹配,比如我做前端的,但是这个项目又是用基于IOS
开发的,那是不是我就放弃这个让我获奖的项目经历不写呢?
答案是否定的,既然技术不匹配,那我们动用逆向思维,反之通过我们的个人表达能力,向面试官展示我对于这个项目的熟练,通过例举我在团队中做了什么,我又为了团队付出了什么,调查了哪些文献等等来体现自己的 学习能力和团队协作能力。因为作为程序员来说,我们没办法脱离一个团队干事,而一个项目的成功少不了一个团队的合作能力,面试官也当然想招一个好融入团队的面试者。
数据结构与算法真的很难吗
相对于后端来说,前端的算法考察说真的没有那么高要求,就我整个秋招面试经历来看,更多的还是笔试的时候做做算法题,当然,如果笔试没有通过,何来面试之言?
对于前端,我在笔试的时候很少有遇到特别难的题目,我感觉都还算比较常规,大多数都是基于 leetcode
上面的题目改编的,有时候直接搬过来的原题。而在我的面经中几乎没有提到笔试题目是哪些,一方面,笔试的时候时间是有限的,给定的时间一般来说与题目难度相关,所以很少有时间整理习题。另一方面,笔试题目最好不要公开,这与公司题库挂钩。
而在面试过程中,比如某跳动公司特别爱考察算法,我遇到的也是经典的 最大子段和
,然后更多的还是考察对于 js
能力,比如让你手撕 深拷贝
,手写 ES5继承
,还有就是一些业务相关的问题了,都是基于 js
能力,但这些都需要扎实的算法基础。而对于滴滴面试,考察的算法也不过是经典的排序算法,这些难道很难吗?
可能大多数人觉得算法太难了,我觉得我不应该挂在大厂的笔试上面,我宁愿输在面试流程中。但我要说的是,没有算法是万万不能的!
可能有些小伙伴会提出:面试造火箭,工作拧螺丝
,学习算法就是为了应对面试,这一点我并不完全否认。但是我想说的是,如果你一直是一个拧螺丝的程序员,比如让你在页面写一个 Button
,绘制一个表格,刚入职的前端就能完成,甚至有些后端同学也能包教包会,或者还有人会说我会了 Vue
,我会了 React
,我就是初级以上开发工程师了,这也是不对的。
我觉得 Vue
或者 React
只是一个工具而已,正如它们介绍而言,用于构建用户界面的 JavaScript
库,并不是你会了你就真正很牛了,比如说 React
,你觉得状态需要管理,你可能需要了解 Redux
,你觉得需要路由功能,你可能需要了解 React-Router
,你觉得需要维护单向数据流,你可能需要了解 Immutable 数据流
,对于函数式编程,你可能还需要了解 React Hooks
,而对于性能优化方面,你可能还需要了解 React Fiber
等等一系列拓展知识。到此,你觉得还符合一名初级工程师吗?
而真正体现自己能力所在的还是 js
能力,回到算法本身,对于业务中比较复杂的部分,一个优秀的程序员,会结合算法来进行优化。此外,如果你完全没有接触 深度优先遍历
,树形结构
,递归
等概念,没有看过相应代码,那么,你将很难理解虚拟 DOM
,数据劫持
等相关 Vue
源码,为啥我们要学习源码呢?学习源码的目标是学习其中的设计思路,在工作业务中就可利用这些思路编写我们的项目。
算法的重要性我就不再赘述了,下面我将分享一下我对于算法这一块做的准备:
系统的练习
想必了解的同学一定知道做算法题得要系统的刷题,如果你是按着 leetcode
一题一题来刷的话,往往会花费很长的周期去准备算法,并且题目联系不够大,经常性刷完这道,之前刷的几道题解法就忘记了。因此,系统的练习就显得格外重要了。
以我自己为例,我参考了大佬的刷题路线,然后自己建了一个仓库,来提交自己的解题思路,记载自己刷题的过程,然后将自己做过的图通过 label
进行分类,然后做一份思维导图,如下:
传送门: https://github.com/Chocolate1999/leetcode-javascript
从上述脑图来看,我并没有像一些大佬一样,动不动就是好几百道题,应对面试的话,我觉得自己刷的题已经足够了,对于前端来说的话,算法题我觉得还是相对容易一点的。况且自己也有一段 acm
经历,所以我觉得没必要为了刷题而刷题,题不在多。
如果你没有刷题路线,或者需要一套前端刷题路线,你可以跟着我创建的这个 github
仓库路线刷题,本仓库将全程使用的语言是 JavaScript
,是一个纯前端刷题路线,对于前端刷题没有方向的小伙伴简直是福音。解题代码会记录在本仓库的 Issues
中,会按照 label
进行分类。比如想查看 「递归与回溯」 分类下的问题,那么选择标签进行筛选即可。
Give a ⭐️ if this project helped you !
推荐学习
一份提升技术世界观的文章
在整个秋招过程中,我有迷茫过,每当面试之前,我处于一种紧张状态,尤其是面试前一天,我会担心这也记不住那也记不住,我不知道阅读在这里的你是否有相同的感受。而通过好几次失败的面试后,大概在 9 月份下旬的时候,我看了几篇文章,不再是关于前端基础知识那些,而是《CSS 世界》一书的作者 张鑫旭
的文章:
我比较推荐大家阅读一下,我想能够放下自己浮躁的心态,我比较理解在秋招过程中屡战屡败的堕落感,人之常情,自己努力了很久,看不到前进的希望时确实很容易浮躁起来,而我很庆幸自己调整了过来,我做了这样的转变:
首先,在 9 月下旬几场面试下,我发现我有了一点浮躁,连笔试都做的不太顺手了,有的时候一天要连续做两场笔试,第一场做完了,几乎没有余力去做下一场,基本上两场中选择一场,这也导致我后面收到面试的机会也少了一些。
其次,几场面试下来,我复盘总结的时候,发现相同的问题我还是不知道如何最优的去回答,而是每次面试前疯狂抢记知识点,我发现这一点用处也没有,就这样持续了 2 周左右,总结下来啥也没做,没得到任何增长,反而多了一点浮躁,面试通过的概率也变的越来越低。
好在自己每隔一段时间会有一个复盘,回想这两周来,我确实做的不太行,我想我应该先放下这面对面试的沉重包袱,扎实的学习,而非靠着面经背题这样,这样对我面试一点帮助也没有,我能进这家公司应该是我本身能力具备,实力够强,就像上述提到文章里面说到的:BAT这样的厂子,你就算挤破头也是进不去的,如果你能进去,与所谓面试技巧关系并不大,而是你本身够硬,所谓面试技巧的作用就像是公主头上多插了根羽毛,锦上添花而已。
双节期间,我做了什么
到了国庆那段时间,我提前调整了自己的状态,我不再刷着面经了,我觉得我也不需要所谓的面经了,我放下自己的包袱沉下来专研知识点,每天坚持按照自己的专题刷 leetcode
。
在此,也感谢有情怀的小野老师的视频,很多知识点都是跟着他学习的,在国庆期间从老师那里学习了很多,跟着学习了 Vue 相关源码。
另外,在国庆期间,我也系统学习了 React
,从 React16版基础
到学习 Redux
,然后再学习 React Router
,最后学习了 React Hooks
,基本上按照学习路线来,从一个最简单的 todoList
到以 todoList
结束,顺畅无比。
双节过后,我的感受
短短几周时间,我感觉不论是我的技术世界观,还是基础知识我都感觉比前一个月好了很多,对于面试,我发现我已经能够从容面对,不再是面试前抢记一下,然后结束面试后焦虑自己的结果。
而在之前,我也有幸阅读到了一篇文章,至于出处我不知道在哪了,但文章大致内容如下:
秋招得要坚持下来,8 月份如果没有成功,那就 9 月份稳扎稳打坚持下去,如果 9 月份没有成功,那就冲击 10 月份,坚持下去,会有机遇的。秋招还没有结束!
是的,有的时候是我们给自己定了一个结束时间,我不知道阅读到这里的你会不会和原来的我一样,认为 9 月份就是倒计时,9 月份过去了,那么宣布秋招结束了。现在的我就不会这么想了,我们要做的是坚持下去,隔绝外界干扰的声音,就算别人提早拿到了 offer ,我们不能因为这个而焦虑,找工作是自己的事情,我们可以晚一点,但不能心急。秋招的结束一方面是时间上确实结束了,另一方面是我们备战心态发生了变化导致的结束。我们要做的是稳扎稳打,坚持下来,就算到10月份还是有机会的,机遇永远是给有准备的人!
就我而言,10 月份简直就是一个大变化,9 月份屡战屡败,10 月份双节过后,我很幸运地收到了网易互娱的二面邀请,而在二面过后两天后,又收到了 HR 面试邀请。而后又几天,我又被美团捞起来了,一天连续两轮技术面,面试官的评价都还不错,这也许就是越努力越幸运
。而在 10 月份我的面试体验也是越来越好,我变得更加自信了,我能很好的和面试官交流,也和面试官一起探讨工作中业务和技术的取舍等问题。我觉得这就是秋招带来的蜕变,褪去了我的焦虑。
个人经验分享
我希望阅读到这里的你能够 海纳百川有容乃大
,就像上述有容乃大的技术世界观文章里面提到的:
“任何能够自圆其说的理论都能称为科学!”
比方说中医理论,比方说阴阳理论,如果这些理论能够自圆其说,我们就可以认为其是科学。估计有人会对上面的话表示嗤之以鼻,中医也算科学真 TM 见鬼了!请记住本文的“有容乃大”!我们其实不必执着于字面的意思,这句话其实是引导我们从不一样的角度,用不一样的方式看待问题。不能拘泥于自己原本狭隘的世界观认知中,跳出来看待,用更为哲学的眼光看待,你对世界的认识则会更加的丰满。
每个人的内心世界都是不同的,对待事物的看法也不一样,所以我们就不能强行按照自己的技术世界观去随意批判他人,而应该用更包容的态度,去看待他人的理解,说不定可以从中得到很多启示,获得不少灵感。
在此,我将自述我学习前端的一些心路历程,而我作为此次校招生而言,许多地方也是不够成熟的,我觉得一直不够那个资格去分享自己学习前端的方式,而现在通过一轮又一轮面试的检验,我觉得也应该总结一下了,给自己一个对秋招的回顾,关于学习的文章以及准备方法上文我基本上有提及到了,因此,在下文就不赘述了。
个人经历
大学期间,大二参与了 acm
,从那个时候喜欢上了写博客,渐渐地养成了一个写博客习惯,我感觉我的春招找实习,秋招找工作,这份经历给了我很大帮助,大多数公司招聘信息或多或少的提及:有优秀博客或github的优先
,这两方面我觉得我还是坚持下来了,也收获了它们给我带来的好处。
而我们学校很少有前端相关课程,从大二就开始学习 java
,大三学习了 javaee,但通过学习,我发现我对于 java 并不是很感兴趣,而我真正确定我自己未来职业方向还是在大三的课程项目上,是 javaee+软件工程
两门课程期末设计项目,那个时候开始接触了前端框架 Vue
,更多的了解了 nodejs
这一块,我发现,这才是我想折腾的,于是就在今年 3 月份的时候,我开始了自学前端之路。
可能大部分人,在校期间或多或少的参与了一些项目设计大赛,获得过了一些奖项,但是我没有,我大二/大三期间参与 acm
相关竞赛,尽管没有取得比较优秀的成绩,但是这对我后续笔试方面省了不少时间,我不需要花费很长的时间在算法这一块,我只需要系统的练习一下,从 C++
语法转到 js
语法即可,所以对于算法这一块来说我准备的时间不是很长,还是那一段刷题时光带来的结果,对于字节跳动校招笔试,我有一次全 A,自然也就收获了面试邀请。
上文提到过,我没有相关项目比赛,那么简单来说就是我的项目经验不足,这对于找工作来说优势就少了很多,于是我就从黑马
那里学习跟着做了一个 Vue 电商管理系统,为了巩固自己Vue
技术栈,这个项目我还做了两遍。为了拓展自己的技术栈,我又做了一个 Vue+SSR+Koa2开发仿美团网
的项目,为此我还做了一个视频介绍。
然后到了春招阶段,我积极投递简历,整个春招几乎屡战屡败,直到 6 月份,拿到了某电子公司的实习 offer,为此,我写下了我对于春招的一份总结 ,其中包含了我在春招查阅的相关资料,以及一些个人感想,可能当时想法不太成熟,还望读者 海纳百川有容乃大
。
实习过后,我还没有总结这段实习带来的体会,这个后续我会补充回来。接下来,返校后,就是我对于秋招的征途了,然后就带来了这篇文章。
总结
最后,祝愿阅读到这里的你,在秋招之路能够顺利拿到满意的 offer,还处在大一大二的同学们,尽早确定自己的方向,不论是考研还是找工作,保持初心,坚持下去!
文章产出不易,还望各位小伙伴们支持一波!
往期精选:
leetcode-javascript:LeetCode 力扣的 JavaScript 解题仓库,前端刷题路线(思维导图)
小伙伴们可以在 Issues 中提交自己的解题代码,🤝 欢迎 Contributing,可打卡刷题,Give a ⭐️ if this project helped you!
访问超逸の博客,方便小伙伴阅读玩耍~
学如逆水行舟,不进则退
javascript