Kyon Huang 的博客

Github 连接不稳定,请科学上网以获取最佳访问效果

0%

上学期曾在 NodeJS 的门槛前匆匆一瞥而不得入,暑假终于有大块的时间一次入门。这篇笔记以 七天学会NodeJS 为主干,辅以廖雪峰 JavaScript 教程中相关内容以及其他渠道的一些知识整理而成。内容主要是脑图,一部分细碎知识点和代码以文字呈现。

在学习 NodeJS 过程中,感觉对软件工程基础课程的融会贯通有了更深的理解。作为 JavaScript 的服务器端环境,NodeJS 操作文件、操作进程等功能和上学期的 Unix 课程有着较高的相通性。可惜我 Unix 没有好好听过。网络操作的内容则和 HTTP 以及 Socket 协议的知识紧密联系,这些大概在大三下学期的计算机网络课程中。到时要督促自己按时到勤认真听课了。

虽然总觉得大学授课的水平参差不齐,课程内容可能重要性也分三六九等,但是回头才发现全面的知识体系对今后学习的帮助,不管哪方面知识都是可以迁移的。说实话 whu iss 的专业课安排还是比较科学的(不过学长说计算机网络有点晚,应该放到大三上学期)。希望自己珍惜在学校的最后一年多的时间,不管是学业还是别的方面,不要留太多遗憾。

更新记录:

  • 17.08.30 根据《深入浅出 Node.js》的笔记,对”NodeJS 应用领域及特点”部分进行文字补充。
  • 17.09.02 根据《深入浅出 Node.js》的笔记,对”模块”部分进行文字补充。
阅读全文 »

一篇人工智能及相关概念(机器学习、深度学习、神经网络)的入门知识笔记。带一点点自己的思考。

为什么

为什么作为一个前端学习者,我要对看似毫无关联的人工智能有所了解并进行学习?

  1. 发挥科班优势。众所周知,机器学习等技术对数学的要求较高,对计算机组织与体系结构、操作系统等计算机基础知识也有一定要求。作为一个就读软件工程的本科生(而且还打算读研),应该充分利用自己的优势来规划职业生涯。
  2. 随着人工智能的飞速发展,即使是前端也可能与之发生密切的联系。目前相关方面和前端联系的最深的应该就是数据的挖掘及可视化。即使不如此,作为一名软件工程师,也应该要对最前沿的技术有所了解。
  3. 确实很有意思啊,科幻小说里的人工智能什么的。自己也有时以此为基础构思一些小说的点子。个人感觉,真正的人工智能确实是会对人类的未来造成巨大影响的事物。

何况,我手上还有一本蔡恒进老师的《机器崛起前传——自我意识与人类智慧的开端》没读,带签名的。既然蔡老师赠给我了,还是要抽时间读一读的。

这不代表我放弃了前端的学习。在静下心来巩固 JavaScript 基础的同时,我希望自己学会放宽视野,在 20 岁之前。

不要拒绝未来的任何可能性。

阅读全文 »

Promise 是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理和更强大。

特点:

  1. 对象的状态不受外界影响Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Fulfilled(已完成,又称 Resolved)和Rejected(已失败)。只有异步操作的结果可以决定当前是哪一种状态。
  2. 一旦状态改变,就不会再变,任何时候都可以得到这个结果Promise对象的状态改变只有两种可能:从Pending变为Fulfilled和从Pending变为Rejected

有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接口,使得控制异步操作更加容易。

缺点:

  1. 无法取消Promise,一旦新建就会立即执行,无法中途取消。
  2. 如果不设置回调函数,Promise内部抛出的错误不会反映到外部。
  3. 当处于Pending状态时,无法得知目前进展到哪一个阶段(刚开始还是即将完成)。
阅读全文 »

昨天看 Trending repositories on GitHub today 时,发现了一个不得了的东西:

Pokemon-Terminal,已经有 1200+ star

给终端安上超炫酷的皮神黄皮肤!
作为一个铁杆口袋迷+程序员,还有什么能比这更打动我的心吗?

一天后,在一番说麻烦也不麻烦,说不麻烦又学了很多新东西的折腾后,我成功入手了这款至尊皮神黄皮肤!

感觉又能元气满满地查 bug 了呢

如果你也是口袋迷,也想给终端安上这款皮肤(或者在 493 只不同的口袋妖怪皮肤中任选一款),那么你可以看看我对这趟折腾之旅的全过程介绍,或许可以少跳几个坑。

阅读全文 »

随着 Vue 文档的阅读,单页面程序、组件等概念出现地越来越频繁。但我始终感觉对这几个词缺少一种逻辑联系上的认知。直到看到 xufei 在 github 上的关于这个主题的一系列博文,始有醍醐灌顶之感。综合各方面资料,自己进行一个整理,帮助自己深入理解。

阅读全文 »

《ECMAScript 6 入门》是一本 JavaScript 语言教程,全面介绍 ECMAScript 6 新引入的语法特性。作者阮一峰大佬慷慨地选择将全书开源:ECMAScript 6 入门。将知识点简便地总结一下,以供后续使用时参考或复习。

此博文包括:let 和 const 命令、变量的解构赋值、字符串的扩展、正则的扩展、数值的扩展、数组的扩展。

阅读全文 »

按照传统的方式,在页面上实现动画的方式有多种,包括使用 GIF 图片、使用 JavaScript 来动态修改 DOM 的位置并加上一个定时器、使用 Flash 等。但这些方法都存在自己的问题,比如引入额外的文件会导致页面尺寸变大,这样会导致页面加载变慢,从而影响用户体验。

通过浏览器对 CSS3 标准的支持,我们不必再依赖于大尺寸的外部文件,仅凭 CSS 就可以实现动画。我以前没有机会使用,所以基本没有接触功能强大的 CSS 动画。在这篇博文中系统地总结一下,后续补充几个使用示例进一步巩固。

17.04.03 更新:补充打字机动效示例。

阅读全文 »

大约两周前我在空间里发了一条说说,说感觉自己的创造力日渐枯竭。很多同学不以为然,实际上我是真的有这样的认知。我感觉自己在失去对代码之美的感知,而这种创造力的枯竭也一定程度影响着我的动手能力。我在看书、看视频,却不太愿意去写百度前端训练营里一些基础的代码(而且并不大会)。我安慰自己,我正在修炼内力,一旦出关便是绝世神功威震武林。然而事实是金庸小说中光有内力而不懂一点外家功夫的货,都只有乖乖挨揍的份,至于之后能否成功报仇又是两说。就像我昨天想写一个很简单的动画效果,却最终一筹莫展,只能暂时放弃。

好吧,让我把自己从枯燥的读书笔记中暂时解放出来吧。正好有一个有趣的小 demo,从我还没有打算系统学习前端开发时就躺在收藏夹里了。不妨把玩一下,看看别人能凭借着兴趣写出怎样有意思的小东西。

阅读全文 »