Blog icon indicating copy to clipboard operation
Blog copied to clipboard

冴羽写博客的地方,预计写四个系列:JavaScript深入系列、JavaScript专题系列、ES6系列、React系列。

Results 143 Blog issues
Sort by recently updated
recently updated
newest added

## 前言 TypeScript 的官方文档早已更新,但我能找到的中文文档都还停留在比较老的版本。所以对其中新增及修改较多的章节进行了个人的翻译整理。 本篇整理自 [https://www.typescriptlang.org/docs/handbook/2/narrowing.html](https://www.typescriptlang.org/docs/handbook/2/narrowing.html) 本文并不完全遵循原文翻译,对部分内容自己也做了解释补充。 ## Narrowing 试想我们有这样一个函数,函数名为 padLeft: ```typescript function padLeft(padding: number | string, input: string): string { throw new Error("Not implemented yet!"); } ``` 该函数实现的功能是: 如果参数...

TypeScript系列

## 前言 最近我发起了[「冴羽答读者问」](https://www.yuque.com/yayu/ask/dzng83)活动,如果你也有想要提问的问题,欢迎留言,我会按照顺序依此回答。 ## 正文 这是原问题: > 算是一个前端的时间也有五年了,今年也刚好满 30 岁了,感觉自己一直忙着完成业务,为了保持竞争力、不落伍等原因而学习新的框架、工具;回想起来年少轻狂浪费了不少时间,有了老婆孩子之后学习的时间也越来越少;知晓基础不好,反复地在看但感觉提升也不是很明显,估计是因为练习不够;待在一家尚能养家糊口的公司,说实话,要是能在这家公司干到退休,写一辈子代码,对我来说也能接受,只是无法去预见未来。平时看到一些很高端的技术比如低代码、D2C 或者其他大厂已经在广泛应用的东西,总有一种不知道这辈子自己有没有一点点成为很厉害的程序员的机会。想问的是:如何学习更有计划性、提升更稳更快,如何处理技术迭代越来越快伴随而来的心急和焦虑。 这应该是很多人的困扰了,本篇我们就聊聊学习这件事情。 **关于学习,我们最大的三个困惑是:学习是为了什么?我该学什么?我该怎么学?对应到 6W 分析法中,分别是 Why?What?How?我们一个一个聊。** 我们为什么要学习呢?这个问题听起来很简单,但深究一下,也没有那么简单。 是为了回应父母的期待吗?是为了拿到 offer,获得一份高薪的工作吗?为了打败他人,享受人上人的感觉吗? 亦或者是为了中华崛起,实现中华民族伟大复兴吗?是为了离开当下的环境,看到更高的风景吗?是为了实现自己的理想,实现个人价值吗?再或者是为了帮助他人获得幸福快乐吗? 在我们上学的很长一段时间里,我们并不需要给出自己的答案,父母、老师、同学、甚至社会、国家都给了我们答案,我们甚至不需要认可这些答案,只用按部就班、学习考试就行。 但也正是因为这样的环境,我觉得很多人失去了对这个问题的思考,以至于不知不觉间,将学习本身当成了目的。遇到困难,我去学习就好了,等我学完,这些困难一定就能解决了吧?父母对我的成绩不满意,我去学习就好了,我把所有的时间都用来学习上,这下他们不能再伤心了吧?学来学去就是没有什么进展,哪还能有什么办法,我只有更刻苦自律,把每分每秒都用到学习才行。 而学习的终点是考试,是 offer,是……,所以当到达终点时,很多人也就不再学习,这也就是为什么高考结束后,有那么多的学生都会撕书以示“庆祝”。 你可能想,我都已经毕业了,才不会犯这样的错误。可是你回想下过往的学习经历,你是否经常破釜沉舟般的推掉所有事情,把时间砸到学习上,但实际学习的效率却很低,一天到头也没干成啥事?也许有一两天学习效率很高,但大部分的时间是不是在分神、发呆、休息、精神涣散中度过? **如果是这样,也许你就是在“假装学习”。** 这像极了小时候的我们,父母管教严格,去干学习之外的事情都会被说教禁止,于是我们形成了“不管学什么,学的怎么样,我只用表面是在看书就行了”的潜意识,而我们在面对低下的学习成果的时候,我们也容易安慰自己,“我并没有把时间花在其他的地方,我可一直在努力学习,至少我要比那些去玩耍的人强吧……” **所以你看,我们并没有追求真的学到什么,我们追求的是学习这个行为本身,是自己学习的姿态,是为这样的姿态而感到的心理满足和迷恋。** 那么你可能问我,你认为学习的目的是什么?说真的,前面说的那么多目的其实都可以成立,因人而异。**但我想说的是,倒也不需要想那么远,学习的目的不就应该是为了解决问题吗?** 你可能会说,你这不是废话吗?难道我现在的学习不是为了解决问题吗?...

答读者问

## 前言 最近我发起了[「冴羽答读者问」](https://www.yuque.com/yayu/ask/dzng83)活动,如果你也有想要提问的问题,欢迎留言,我会按照顺序依此回答。 ## 正文 代码作为我的工作,自然是一个优先级很高的爱好,不过能让你这样的好奇,其实也是因为,关于自己,我介绍的太少了。 纵观我所有的文章,在「冴羽答读者问」系列之前,我从来不写非技术类的文章。而在技术文章中,我写作的一个标准是:不写废话,所以我不会像一些作者在技术文章中,还写一点生活的情况或者最近在干的事情。当然,我也不会像一些作者,写年度总结、个人感悟,亦或者,吐槽一些事情。所以绝大部分同学对我的了解,除了我在网上挂出的一些介绍,其他方面则知之甚少。 就算加了我好友,了解的也只是多了一点,尽管 「mqyqingfeng」 这个确实是我的私人微信,但我是一个不怎么发生活状态的人,我的朋友圈更多是一些我的文章、以及我分享的觉得好的视频、链接等,除此之外,还能看到我写的一些比如读书感悟、日常思考、游戏截图、生活分享等内容: 细心的朋友看我的截图,会发现我的朋友圈点赞数非常的低,这是因为我平时发的一些朋友圈都会先设置成私密,一般 3 天以后,才会设置成公开,所以关于我生活的朋友圈,连我的朋友都会感慨到,从来没有刷到我的热乎的朋友圈。 说这些,只是让大家对于我低调的习性有个基本的了解(虽然我感觉我已经没有那么低调了),正如我建的前端群的群名,「低调务实优秀中国好青年」,第一条就是低调,像我的群的知识库都是私密的,为了保护大家的隐私,各种活动统计也都是用的微信昵称,而非微信号。 但既然关于我的爱好做了提问,我就聊聊我的两个耗时比较多的爱好好了。 第一个是阅读。在去年,我一共重读和新读了 29 本书籍,这其中,多以人文社科书籍为主。在《[冴羽答读者问:30 岁了, 现在开始努力,晚吗?》](https://github.com/mqyqingfeng/Blog/issues/280)这篇文章中,我给出了“我为什么要阅读”的一个回答,那就是我们需要相信一些东西,或者是天道酬勤,或者是人性光辉、或者是因果循环,总之,你要相信一些东西,你才能多做出那一点点改变,正是那每次一点点的改变最终才能引发了质变,而怎样让我们相信呢,一个是阅读,一个是实践,相对来说,阅读是最容易的方法。 **而换个角度想,活在这个星球的人数应该有几百亿人,但是流传下来的思想家却不过几百位,总结的那些对人生、社会有深刻认知的优秀的书籍也不过百本,阅读不到百本书籍,就可以了解人类的大智慧,难道不是一件非常值得去做的事情吗?** 你可能会怀疑,读个百本真的就能做到吗?我只能说,虽然不能穷尽人类的智慧,但你却能对人类的智慧,管中窥豹,可见一斑。很多道理,在这些书籍中我们就已经了解了,在读更多的书籍中,其实只是在不断的复习、巩固、拓展、强化认知而已。 那么我们要阅读哪些书籍呢?说真的,这就要看你的个人兴趣了,就我个人的方向,比较喜欢读人文社科中的文学、哲学、心理学方向的著作,而在这些方向中,优秀的书籍非常的多,你可以去知乎搜索一下相关方向的书籍推荐,再或者,打开微信读书的榜单或者书单,找到评价非常高的书籍优先阅读。 不过在我的群里的同学,我一定会推荐周岭的[《认知觉醒》](https://weread.qq.com/web/reader/6a732ce07201202c6a7b30akc81322c012c81e728d9d180)和[《认知驱动》](https://weread.qq.com/web/reader/eb032730726c4502eb0ff73kc81322c012c81e728d9d180),微信读书上可以免费阅读,看完你就会对我群里发起的那么多活动,有个更加深刻的认知。 第二个是游戏,自毕业后,我主要打单机游戏,也算是打过比较多的游戏: 像巫师3、女神异闻录、刺客信条系列、最终幻想 15、赛博朋克等游戏,我都是打了上百个小时的。 很多人打游戏常有罪恶感,说真的,这跟游戏有什么关系呢,你有罪恶感,本质上是因为你觉得打游戏,或者是这个时候打游戏是错的,但是你呢,又管不住你自己,放纵自己打起了游戏,最后把责任推到游戏上。 很多人打游戏也常有空虚感,如果是一种成就完成后的空虚,那它就跟我们日常做成其他事情之后,短暂的目标缺失造成的空虚一样,打下一款游戏就好了。而如果是内疚的空虚,实际上,在你打游戏前,你就已经空虚了,这个时候,无论是做什么,就算是做八大艺术的事情,只是助长你的空虚而已,结束之后,你也照样感到空虚,而你之所以选择游戏,还不是因为你书读不进去、音乐一窍不懂,跳舞四肢僵硬,绘画不行,雕塑不行,戏剧不行,建筑不行,看电影还总觉得不如打游戏快乐,你还以为是你选择了游戏,其实是你没得选择。 所以如果你有明确的目标并在努力中,同时真的喜欢游戏,打游戏就是一种在正确的时间做正确的事情而已,就跟我们选择其他娱乐活动一样,自然不会有什么负面情绪。而如果你做不到前提条件,认识到这些负面情感的本质,也能帮你打游戏打的更心安理得一些,少些事后的痛苦。...

答读者问

## 前言 Promise 的基本使用可以看阮一峰老师的 [《ECMAScript 6 入门》](http://es6.ruanyifeng.com/#docs/promise)。 我们来聊点其他的。 ## 回调 说起 Promise,我们一般都会从回调或者回调地狱说起,那么使用回调到底会导致哪些不好的地方呢? ### 1. 回调嵌套 使用回调,我们很有可能会将业务代码写成如下这种形式: ```js doA( function(){ doB(); doC( function(){ doD(); } ) doE(); } ); doF(); ```...

ES6系列

## 前言 在 [《一篇带你用 VuePress + Github Pages 搭建博客》](https://github.com/mqyqingfeng/Blog/issues/235)中,我们使用 VuePress 搭建了一个博客,但是浏览最终搭建的站点:[TypeScript4 中文文档](http://ts.yayujs.com/),我们会发现,在每篇文章的底部,并没有像 VuePress 官方文档那样,出现最后更新的时间: ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d94d940000bc4a8bb8b21fac051326ca~tplv-k3u1fbpfcp-zoom-1.image) 这篇我们来探究下如何实现最后更新时间。 ## 官方自带 查阅 VuePress 的[官方文档](https://vuepress.vuejs.org/zh/plugin/official/plugin-last-updated.html#%E4%BD%BF%E7%94%A8),我们可以知道,VuePress 自带显示最后更新时间的插件,在默认主题下,无需安装本插件,因为 VuePress 的 core 中已经包含此插件。 你可以在 `config.js` 文件中直接使用: ```javascript...

博客搭建

## 定义 维基百科中对柯里化 (Currying) 的定义为: > In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of...

专题系列

## new 一句话介绍 new: > new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一 也许有点难懂,我们在模拟 new 之前,先看看 new 实现了哪些功能。 举个例子: ```js // Otaku 御宅族,简称宅 function Otaku (name, age) { this.name = name; this.age = age; this.habit =...

深入系列

## call 一句话介绍 call: >call() 方法在使用一个指定的 this 值和若干个指定的参数值的前提下调用某个函数或方法。 举个例子: ```js var foo = { value: 1 }; function bar() { console.log(this.value); } bar.call(foo); // 1 ``` 注意两点: 1. call 改变了...

深入系列

## 前言 在上一篇 [《 ES6 系列 Babel 是如何编译 Class 的(上)》](https://github.com/mqyqingfeng/Blog/issues/105),我们知道了 Babel 是如何编译 Class 的,这篇我们学习 Babel 是如何用 ES5 实现 Class 的继承。 ## ES5 寄生组合式继承 ```js function Parent (name) { this.name =...

ES6系列

## 前言 最近我发起了[「冴羽答读者问」](https://www.yuque.com/yayu/ask/dzng83)活动,如果你也有想要提问的问题,欢迎留言,我会按照顺序依此回答。 ## 正文 首先,非常感谢对我的喜爱,还有什么能比一个读者的喜爱更让作者开心的呢? 这让我想起一部叫《少年派》的电视剧,其中有一段剧情,张嘉译扮演的父亲劝说赵今麦扮演的女儿,不要放弃读书,通过网络流行语的古文版,让女儿刮目相看 女儿说: 『老林,你太有水平了,我要开始粉你了』 父亲说: **『你不是粉我,你是粉腹有诗书气自华的人』** 所以,我认为,这种喜爱,是对我的肯定,也是对我的一种期许。 当然,我举这个例子,并不是要夸耀我“腹有诗书气自华”,我确实翻过很多书,但多以工具书为主,也是最近几年,才开始读了一点人文社科的书籍,深感对这个世界的认识还很狭隘,离“腹有诗书”还有很长的路要走。 所以关于这个问题,我倒不是要聊如何腹有诗书,我想聊聊,在我看来,哪些特质会受人喜爱? 又或者,我们该成为一个什么样的人? 第一个想说的是,做一个温暖的人。不过正如太阳一样,能温暖他人是因为太阳本身是发光发热的,所以做一个温暖的人的前提是,自己也是有能量的,但这个能量与地位和成就无关,而是指一种积极的状态,或者是坚持,或者是乐观,或者是理想主义,或者是有趣,你自己身上有一种正向的能量,你才能触动他人,温暖他人。 如果你有能量,但你却不愿意帮助他人,这依然不是一个温暖的人,如果谈到帮助他人,我们可能又要展开聊到善良与软弱的区别、真诚与相信,共情与换位思考,但像善良这么触及人性的品质,绝不是看几篇文章就能提升的,所以与其提倡大家做什么换位思考的练习,**我更建议大家,多去经历,多出去走走,多与人联结,多阅读好书,经历的事情多了,能共情的人事物自然也就多了起来**。 虽然很希望大家能温暖身边的每一个人,但并不是所有的人都值得被温暖,亦或者,也不是所有的人都愿意被温暖,亦或者,也不是所有的人都愿意接受某种被温暖的方式,这就像冬日的暖阳,是很温暖,但不是所有的人都愿意走出屋门去晒晒太阳的,甚至会抱怨,还不如是雨天,这样我就有不出门的理由了,所以无论我们怎么做,总会遭遇一些无视、冷漠、甚至嘲讽,但没有关系,**最重要的是,我们确立了自己的原则和存在方式,付出温暖的人,不会感到寒冷**,那些泼凉水的人,终究有他自己的苦难要经历。 第二个想说的是,做一个正直的人,但这里想说的正直,倒不是说要追求公平公正、要不畏强势,要刚正不阿,要坚持正道,当然,这些也很重要,但我更多想表达的是,**正直,是有勇气坚持自己的信念**。 在《银魂》第 27 话,土方问银时,“你死不死我管不着,我只是不明白,你去送死干什么?”银时回答道:“反正不去,我也会死,有个器官比我的心脏还重要,虽然我看不见它,但是它确实在我的体内,因为有它我才能站的直,就算步履蹒跚也能笔直往前走,如果我不去的话,它可是会拦腰折断的,我的灵魂它会拦腰折断的,比起心脏停止跳动,我更重视它。” 这或许就是银时对武士信念的坚持,但也同时说明了,正直真的很难,正直也包括有能力去坚持你认为是正确的东西,在需要的时候义无反顾,并能公开反对你确认是错误的东西。如果有一次没有坚持住,信念就不再是信念,人也很难再回到从前。当然了,就我们的日常生活而言,坚持信念,倒不需要像动漫中那样,面对生死抉择,但在日常中,有自己的原则,并为之坚持的人,是很有魅力的哦 第三个想说的是,做一个自由的人,这里我直接引用我发过的朋友圈: > 什么是自由?做自己想做的事情,拒绝自己不想做的事情是自由。 > > 在做自己想做的事情中,根据自己的欲望去做是自由吗? 这会让我们沦为欲望、生物本能的奴隶,不是真正的自由。...

答读者问