try/catch/finally:“前端的好厚米,我觉得你们不够了解我呀~”

2023-02-02
阅读 4 分钟
1.2k
这篇文章想跟大家一起重新温习一下关于使用 try...catch 进行异常捕获的一些知识点。为了提升大家的阅读兴趣,我们先来做三个小练习题,如果你都做对的话,那么表明你这一部分的知识掌握的很熟练,可以不用读这篇文章啦~ 如果做错了某道题的话,说明我们还有一些知识点需要再次巩固一下,话不多说,我们先来看看这三道题:
封面图

如何优雅地中断 Promise?来试试 AbortController 吧!

2022-09-07
阅读 12 分钟
9.4k
欢迎大家来到 前端小课堂 的第五期,今天我们来聊一聊如何终止正在进行中的 Fetch 以及 Promise。文中会跟大家详细介绍这里面的两个关键知识点 AbortController 和 AbortSignal。对动手实践比较感兴趣的同学还可以看对应的视频版本。
封面图

Web页面子资源完整性校验详细指南

2021-09-20
阅读 6 分钟
6.3k
时间过得好快,距离上一篇文章动手写一个简单的编译器:在JavaScript中使用Swift的尾闭包语法发布已经过去快半年了,这半年时间也一直在想着按时更新文章;但是因为工作和生活的琐事,没有能够坚持下来。有点惭愧,感觉之前年初立下的计划快要实现不了了。希望接下来的这一段时间能够坚持更新文章吧。
封面图

动手写一个简单的编译器:在JavaScript中使用Swift的尾闭包语法

2021-04-06
阅读 19 分钟
5.9k
首先跟大家说一下我为什么会有这个想法吧,因为最近在空闲时间学习Swift和SwiftUI的时候会经常使用到这种叫做尾闭包的语法,就觉得很有趣。同时因为很早之前看过jamiebuilds的the-super-tiny-compiler,就想着能不能自己也实现一个类似的有趣好玩简单的编译器。所以就有了js-trailing-closure-toy-compiler这个项目,以...
封面图

2020年,我第一次很正式地写年终总结

2021-01-22
阅读 4 分钟
5k
好像我一直没有写年终总结的习惯,之前也一直都是看别人写年终总结。有时看别人的年终总结,会感叹别人这一年过的好充实。看了很多书,去了很多地方;或者结识了很多新的朋友,能力得到了很多的提高等等吧。也常常会感觉自己这一年好像没干什么事情,会有那么一点沮丧。
封面图

设计模式大冒险第五关:状态模式,if/else的“终结者”

2021-01-11
阅读 9 分钟
10.2k
今天这篇文章来跟大家一起学习一下状态模式。相信读完这篇文章之后,你会收获很多。在以后的开发中,如果遇到了类似的情况就知道如何更好地处理,能够少用if和else语句,以及switch语句,写出更已读,扩展性更好,更易维护的程序。话不多说,我们开始今天的文章吧。
封面图

设计模式大冒险第四关:单例模式,如何成为你的“唯一”

2020-12-09
阅读 4 分钟
5.6k
这一篇文章是关于设计模式大冒险系列的第四篇文章,这一系列的每一篇文章我都希望能够通过通俗易懂的语言描述或者日常生活中的小例子来帮助大家理解好每一种设计模式。今天这篇文章来跟大家一起学习一下单例模式。相信读完这篇文章之后,你肯定会有所收获的。

设计模式大冒险第三关:工厂模式,封装和解耦你的代码

2020-11-12
阅读 7 分钟
6.3k
这篇文章是关于设计模式系列的第三篇文章,这一系列的每一篇文章都会通过生活中的小例子以及一些简单的比喻让大家明白每一个设计模式要解决的是什么问题,然后通过什么方式解决的。希望大家在看过每篇文章之后都能够理解文章中讲解的设计模式,然后有所收获。话不多说,让我们开始今天的冒险吧。

设计模式大冒险第二关:装饰者模式,煎饼果子的主场

2020-11-02
阅读 5 分钟
6.3k
这是关于设计模式系列的第二篇文章,在这个系列中,我们尽量不使用那些让你一听起来就感觉头大的解释设计模式的术语,那样相当于给大家带去了新的理解难度。我们会使用生活中的场景以及一些通俗易懂的小例子来给大家展示每一个设计模式使用的场景以及要解决的问题。

快使用Scriptable自己开发一个iPhone小组件吧

2020-10-26
阅读 5 分钟
16k
最近苹果的 iOS 系统升级到了 iOS 14,这次的更新我比较关注的就是升级的小组件功能,这次更新我们可以将小组件放置在主屏幕中的任何位置,可以让我们更加便捷的查看一些信息,从而省去了还需要打开APP去查看消息的步骤,感觉很方便。

设计模式大冒险第一关:观察者模式

2020-10-12
阅读 6 分钟
4.5k
最近把之前学习过的这些设计模式又再次温习了一下,觉得还是有很多收获的。确实有了温故知新的感觉,所以准备在每个设计模式复习完之后都能够写一篇关于这个设计模式的文章,这样会让自己能够加深对这个设计模式的理解;也能够跟大家一起来探讨一下。

糟糕,在错误的分支开发了新功能,该怎么处理呢?

2020-09-08
阅读 6 分钟
10.8k
最近在开发项目的一个小需求的时候,发生了一件尴尬的事情。那就是当我把新功能开发完成的时候,忽然发现自己开发使用的分支是错误的分支。不过我记得之前学习git的时候有一个git stash的命令可以把当前没有提交的内容存档起来,然后可以在切换分支之后把当前的存档应用到目标分支。不过因为平时不怎么使用这个命令,所...

想要在JS中把正则玩得飘逸,学会这几个函数的使用必不可少

2020-08-24
阅读 9 分钟
8.7k
在之前的一系列文章中,我们讲解了很多关于正则表达式的知识。那么作为一个前端工程师,如果想要把这些知识应用到我们平时的开发中去的话,就需要知道在JavaScript中,能够使用正则的函数有哪些?然后它们各自的功能是什么?有哪些需要注意的地方?只有掌握好了每一个方法的使用场景,我们才可能在需要使用的时候能够很...

报告老板,我们的H5页面在iOS11系统上白屏了!

2020-08-04
阅读 8 分钟
7.6k
时间回到一周前,当时刚开发完公司A项目的一个新的版本,等待着测试完成就进行发布。此时的我也准备从连续多日的紧张开发状态中走出来,以为可以稍稍放松一下。而那时的我还不知道,我即将面临一个强大的Bug选手,更不知道我要跟这个Bug来来回回进行多次的搏斗。当然,我们能看到这篇文章也就说明了我最终解决了这个Bug...

想写出效率更高的正则表达式?试试固化分组和占有优先匹配吧

2020-07-28
阅读 5 分钟
6.8k
上次我们讲解了正则表达式量词匹配方式的贪婪匹配和懒惰匹配之后,一些同学给我的公众号留言说希望能够快点把量词匹配方式的下篇也写了。那么,这次我们就来学习一下量词的另外一种匹配方式,那就是占有优先的匹配方式。当然我们这篇文章还讲解了跟占有优先匹配功能一样的固化分组,以及使用肯定的顺序环视来模拟占有优...

正则表达式量词匹配方式的讲解(上篇)

2020-07-13
阅读 4 分钟
2.5k
如果想要系统的学习正则表达式的话,那么关于量词的匹配方式是必须要掌握好的内容。量词的匹配方式有三种,分别是匹配优先,忽略优先以及占有优先。今天这篇文章先来讲解一下匹配优先和忽略优先,什么,你觉得很难?相信我,读完这篇文章你肯定可以掌握的很好。不相信?那就让我来带着你试一试吧。

距离弄懂正则的环视,你只差这一篇文章

2020-07-06
阅读 4 分钟
5.1k
上一篇文章《正则表达式匹配素数的原理讲解》写完之后,一些同学给我留言说对于正则表达式的环视不是很理解;希望我能够讲解一下关于环视部分的内容。那么这篇文章的目的就是帮助大家理解什么是环视,环视有什么作用,以及在实际的开发中的一些例子。相信阅读本文之后,大家对于正则的环视会有更深入的理解。

正则表达式匹配素数的原理讲解

2020-06-27
阅读 3 分钟
2.6k
为什么要写这么一篇文章呢?是因为自己最近在研究和学习正则表达式,然后在RegexGolf上练习技能的时候遇到了这么一道题目,觉得很有趣。我当时虽然也解决了这个问题,但是正则表达式写的有点长,而且也只算是一种取巧的解决方案。因为如果测试用例再多一点可能我写的这个正则表达式就不能够满足需求了。

(a == 1 && a == 2 && a == 3)为true,你所不知道的那些答案

2020-06-14
阅读 7 分钟
4.2k
看到这个标题,一部分同学的第一反应可能是,又是这个老套的问题,人家都讲过好多遍了你还讲。同学,你想错啦。我可不是在炒冷饭。今天我们要从这个问题,延伸出更多的知识,保证超出你的预期。让我们开始吧。

Lodash源码讲解-compact函数

2017-08-20
阅读 2 分钟
5.9k
首先我们先说一下这个函数的作用,这个函数接收一个数组作为参数;然后将数组中所有通过布尔转换可以变为false的值去除;从而生成一个新的数组。

Lodash源码讲解-chunk函数

2017-08-17
阅读 2 分钟
6.5k
原文首发于Lodash源码讲解 这是我们阅读Lodash源码的第2篇博客,在这篇文章里我们来学习一下Lodash的chunk方法。 chunk函数内部依赖其他的函数,依赖的函数如下所示; slice 按照惯例,我们先来看一下关于chunk方法的源码chunk.js: {代码...} 首先来说一下这个函数的作用;这个函数是用在数组上的一个方法,它将原来数...

Lodash源码讲解-slice函数

2017-08-15
阅读 3 分钟
5.6k
首先我们来说一下这个函数的作用,它的作用就是获取一个数组的切片;所谓切片,就是指数组的一部分连续元素,当然也可以是数组的全部元素。我们这时可能想到了数组本身就有一个slice方法,那我们为什么不使用原生的数组的那个slice方法而非要自己重新写一个呢?

掌握Angular2的NgModule(模块系统)

2016-10-17
阅读 9 分钟
25.6k
我们今天要学习的是Angular2的模块系统,一般情况下我们使用一个根模块去启动我们的应用,然后使用许多的功能模块去丰富我们的应用,扩展我们应用的功能.这些全部依靠我们的NgModule装饰器,接下来我们就来好好学习一下这个装饰器.当然在这个过程中你会遇到一些新的指令,概念等等;但是别慌,我们会在以后的文章中一个一个的详...

掌握Angular2的服务(service)

2016-09-19
阅读 5 分钟
11.3k
这篇文章我们来讲解如何使用service(服务),谈及服务我们就要了解什么是服务;在Angular中,我们所说的服务是指那些能够被其它的组件或者指令调用的单一的,可共享的代码块.服务能够使我们提高代码的利用率,方便组件之间共享数据和方法,方便测试和维护.

掌握Angular2的依赖注入

2016-08-21
阅读 13 分钟
22k
我们这一篇文章还是以QuickStart项目为基础,从头开始讲解怎么在Angular2中使用依赖注入,如果你按照本篇文章中讲解的示例亲自走一遍的话,你一定能够掌握如何在Angular2中使用依赖注入.好,废话不多说,开始我们今天的旅行吧!

Angular2基础之表单使用

2016-08-10
阅读 13 分钟
19.2k
今天我们要带领大家走进一个新天地,那就是Angular2的表单;众所周知基本上所有的web系统都会涉及到关于表单的操作,在那些电商类的网站中,表单更是占据着重要的地位;而且表单的验证,友好的信息提示,表单的提交等等都是web前端开发者常常需要花费大量的时间和精力去完成的任务.但是现在,通过使用Angular2与表单相关的指令和...

理解JavaScript的Object.defineProperty()函数

2016-08-05
阅读 5 分钟
4k
我们的要求就是你要给dreamapple添加一个fullName属性,当dreamapple的firstName或者lastName发生变化的时候,fullName也要随之变化;而且当我们设置了fullName的值的时候,那么相应的它的firstName和lastName也随之发生变化; 那么我们应该怎么做呢?

Angular2基础之用户输入

2016-08-04
阅读 5 分钟
6.1k
我们这次的初始项目还是以我们的QuickStart小项目为基础,然后在那个基础上进行我们今天的操作;在我们这个项目中因为要使用到大量的HTML片段,所以我们决定使用模板文件而不是使用内敛的模板.

Angular2基础之展示数据

2016-08-03
阅读 4 分钟
4.4k
首先要确保你有一个可以运行起来的Angular2的样例程序,最好就是我们上一章节中完成的那个QuickStart小项目或者你自己根据官网上面的步骤完成的QuickStart小项目,因为我们的讲解都是在那个基础上来进行的;然后让我们开始下面的快乐旅程吧.

掌握JavaScript函数的柯里化

2016-07-28
阅读 11 分钟
11.9k
原文链接 Haskell和scala都支持函数的柯里化,JavaScript函数的柯里化还与JavaScript的函数编程有很大的联系,如果你感兴趣的话,可以在这些方面多下功夫了解,相信收获一定很多. 看本篇文章需要知道的一些知识点 函数部分的call/apply/arguments 闭包 高阶函数 不完全函数 文章后面有对这些知识的简单解释,大家可以看看. 什...