动图学CS: 有用的 Git 命令(上)

2020-05-07
阅读 3 分钟
4.1k
尽管 Git 是一个非常强大的工具,但是我相信大部分同学有时候学起 Git 来,感觉很难搞~ 笔者总是习惯于在脑海中重现学习的知识,Git 也一样:当我们执行了切换分支命令,分支之间是如何交互的?又是如何影响历史提交的?当我在 master 分支上执行了强制 reset 又 force push 到了远端 ,又把 .git 文件夹删掉,我的同事...

浅析 FP:JavaScript 中的纯函数

2020-03-30
阅读 3 分钟
3.8k
前言 纯函数 是一个常见的概念,在日常工作中也经常会遇到,它其实非常简单,今天我们来了解一下它的好处以及为什么要使用它。 两个特点 一个函数,如果符合以下两个特点,那么它就可以称之为 纯函数: 对于相同的输入,永远得到相同的输出 没有任何可观察到的副作用 相同输入得到相同输出 我们先来看一个不纯的反面典型...

浅析 JS 设计模式之:工厂模式

2020-03-24
阅读 3 分钟
2.3k
工厂模式是一种创建对象的 创建型模式,遵循 DRY(Don't Repeat Yourself)原则。在该模式下,代码将会根据具体的输入或其他既定规则,自行决定创建哪种类型的对象。简单点儿说就是,动态返回需要的实例对象。

webpack 小技巧:动态批量加载文件

2020-03-18
阅读 3 分钟
6.7k
背景 最近笔者在工作中遇到了一个小需求: 要实现一个组件来播放帧图片 这个需求本身不复杂,但是需要在组件中一次性引入十张图片,就像下面这样: {代码...} 作为一个有代码洁癖的程序员,我是不允许这种重复性代码存在滴,于是乎就尝试有没有什么简单的方法。 方法一:绕过 webpack 由于笔者用的是 vue-cli 3,熟悉的...

浅析 JS 设计模式之:单例模式

2020-03-02
阅读 2 分钟
5.2k
良好的设计模式可以显著提高代码的可读性,降低复杂度和维护成本。笔者打算通过几篇文章通俗地讲一讲常见的或者实用的设计模式。 今天先从最简单的一个入手:单例模式。 文中的示例代码会使用 ES6 语法,尽量简化不必要的细节 概念 单例模式(Singleton)属于创建型的设计模式,它限制我们只能创建单一对象或者某个类的...

你可能忽略的 async/await 问题

2020-02-16
阅读 3 分钟
5k
async/await 大家肯定都用过,在处理异步操作的时候真的是很方便。 如果有还不熟悉的小伙伴可以看笔者之前的文章: 带你理解 async/await 那今天主要讲一些在使用 async/await 时容易忽略和犯错的地方。 一个例子 下面是一个常见的 Vue 代码片段: {代码...} 上面的代码中,每一行都会 等待上一行的结果返回后才会执行。...

写给 Web 工程师的设计入门

2020-01-22
阅读 4 分钟
3.2k
今天分享一篇 设计过程 的入门~ 其中也包含一些有用的 设计网站。如果你你想知道如何完整设计一个项目,可以一起来看下~ 在本文中,将以设计一个 CMS 系统界面为例,介绍针对 web 开发中的通用设计流程。 CMS,全称 Content Management System,即内容管理系统 搭建环境 原文作者使用的是 Adobe XD(它是完全免费的)中...

动图学 JavaScript 之:原型继承

2020-01-15
阅读 4 分钟
3.4k
你是否曾思考为什么我们能使用 JS 中的一些内置属性和方法,比如 .length,.split(),.join()?我们并没有显式地声明它们,那么究竟它们从哪里来的呢? 可不要说什么“那是 JS 中的魔法!”。其实这些都因为一个叫做 原型继承(prototypal inheritance) 的东西。它太棒啦,你平时也经常会用到,只不过可能没有注意!

动图学 JavaScript 之: JS 引擎原理

2020-01-07
阅读 3 分钟
6.2k
JS 实在是太酷了(认真脸),那你有没有想过机器是怎么解析 JS 代码的?作为一个 JS 开发者,一般我们不需要直接跟编译器打交道,但是如果可以了解其中的基本原理,相信会对以后的工作和学习都有帮助的!

动图学 JavaScript 之:事件循环(Event Loop)

2019-12-31
阅读 3 分钟
10.5k
我们都知道 JavaScript 是一门 单线程 的语言:同一时间只能运行一个任务。通常情况下这没什么问题,但是如果你有一个任务需要耗费 30 秒的时间,那其他任务难道都要等它 30 秒么?(由于 JS 运行在浏览器的主线程,所以这 30 秒的时间里,整个页面都会处于卡死状态)

动图学 JavaScript 之:声明提升(Hoisting)

2019-12-16
阅读 3 分钟
3.2k
JS 由于语言设计的缺陷(工期不够?),里面有一些堪称神奇的特性,初学者碰到后可能会满脸黑人问号,今天要介绍的就是其中的一个特性:声明提升(Hoisting)。

写给前端的正则表达式入门

2019-11-29
阅读 2 分钟
11.8k
常用的跟正则相关的方法有 match、test 和 replace。其中 match,replace 都是字符串上的方法, test 是正则对象上的方法。