RainBow
RainBow
## 前言 本文纪录 Javascript 正则表达式的语法学习实践。 正则常见使用场景: - 数据验证,例如检查时间字符串是否符合格式; - 数据抓取,以特定顺序抓取包含特定文本或内容的网页; - 数据包装,将数据从某种原格式转换为另外一种格式; - 字符串解析,例如捕获所拥有 URL 的 GET 参数,或捕获一组圆括弧内的文本; - 字符串替代,将字符串中的某个字符替换为其它字符。 在线工具辅助学习: - https://regex101.com/ - https://jex.im/regulex/ ## 使用规则说明 ### 基本语句 正则表达式(可叫作...
``` [原文链接](https://sizovs.net/2018/12/17/stop-learning-frameworks/) ``` 我们是程序员,每天都在了解最新的技术,每天都在学习编程语言、框架和库。 因为我们知道的现代编程工具越多越好,对吧? 不停地追随 Angular、React、Vue、Riot、Ember、Knockout 的脚步还真是一件有意思的事情呢。(译注:反话) > **但这其实是在浪费时间!** 时间是人类最宝贵的资源。时间是有限的、不可再生的,你可以用钱买任何东西,却买不了时间。 技术,就像时尚,在以光速在变化着。为了赶上它,我们需要跑的非常快。 但是这个跑道上没有终点,所以没有赢家。  ©华尔街之狼(2013),马丁·斯科塞斯(Martin Scorsese) **我的导师曾经这样教我**: 导师:艾德,你在做什么? 我(自豪地说):我在读一本关于如何使用 GWT 构建现代 Java 应用的书呢。 导师:你读它做什么? 我:作为一名 Java 开发者,我需要跟上潮流。GWT 就是现在的潮流。 导师:你在读这本书之前还读过什么书? 我:我读了一本关于...
> [原文链接](http://www.xiaojichao.com/post/jscorev2.html) - [对象](#对象) - [原型](#原型) - [类](#类) - [执行上下文](#执行上下文) - [环境](#环境) - [闭包](#闭包) - [This](#This) - [域](#域) - [作业](#作业) - [代理](#代理) > 原文地址:[http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/](http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/) > > 译者注:Dmitry Soshnikov 是 Facebook...
## 项目 - 项目目录结构清晰 `Components` `Routes` `Config` - 代码格式化符合 eslint,运行以及 pre-commit 都检测 - 避免多层嵌套,webpack 配置别名 alias - utils 导入方式,按需引入 - git commit log ## 组件 - Smart 组件 vs Dumb...
## npm > 了解更多 node Packages,https://nodejs.org/api/packages.html npm 是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要原因之一。 我们只要一行命令,就能安装需要的 node 模块 。 ```shell $ npm install ``` ## 1\. 基本使用 (1)打开 cmd,切换到项目所在文件夹 (2)在 cmd 中输入命令: `npm...
## 前言 随着 git 的使用普遍化,现在更需要关注使用的规范流程,在此纪录。 ## 目录 - [漂亮的徽章](#漂亮的徽章) - [commit 日志](#commit-日志) - [更好的 pull](#更好的-pull) - [rebase-修改提交历史](#rebase-修改提交历史) - [merge 时忽略文件](#merge-时忽略文件) - [git rebase vs git merge](#git-rebase-vs-git-merge) - [分支管理策略](#分支管理策略) - [git...
## 前言 纪录GitHub API 的使用方式,便于改造 blog。 ## 获取 GitHub Token 点击 [这里](https://github.com/settings/tokens/new),勾选以下两项: ``` read: user Read all user profile data user: email Access user email addresses (read-only) ``` ⚠️警告️:别的不要勾选,以免造成账号安全问题。 如果你的项目是属于一个组织的,还需要勾选一个权限:...
## 目录 - [0\. 注意事项](#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9) - [1\. 我们的分支模型](#%E6%88%91%E4%BB%AC%E7%9A%84%E5%88%86%E6%94%AF%E6%A8%A1%E5%9E%8B) - [2\. 开发场景](#%E5%BC%80%E5%8F%91%E5%9C%BA%E6%99%AF) - [3\. 发布的流程](#%E5%8F%91%E5%B8%83%E7%9A%84%E6%B5%81%E7%A8%8B) ## 注意事项 1、pull 配置 ```shell # 所有的 pull 命令都按 rebase 的方式执行 git config --global pull.rebase true...
## 前言 深拷贝拷贝的是两个完全相同的对象,两个双胞胎长得一摸一样,互不影响。 浅拷贝拷贝的是指向对象的指针,两个指针同样指向同同一对象,一改都改变。 浅拷贝:浅拷贝是拷贝引用,拷贝后的引用都是指向同一个对象的实例,彼此之间的操作会互相影响。 深拷贝:在堆中重新分配内存,并且把源对象所有属性都进行新建拷贝,以保证深拷贝的对象的引用图不包含任何原有对象或对象图上的任何对象,拷贝后的对象与原来的对象是完全隔离,互不影响 只是针对复杂数据类型(Object,Array)的复制问题。浅拷贝与深拷贝都可以实现在已有对象上再生出一份的作用。但是对象的实例是存储在堆内存中然后通过一个引用值去操作对象,由此拷贝的时候就存在两种情况了:拷贝引用和拷贝实例,这也是浅拷贝和深拷贝的区别。 ## 浅拷贝 简单的浅拷贝可以使用数组的`concat`和`slice`做到: ```js var arr = ["old", 1, true, null, undefined]; var new_arr = [].concat(arr); new_arr[0] = "new"; console.log(arr); //['old',1 ,true, null,...
## 目录 **JavaScript 必写** - 数组排序(多种方法) - 数组去重(多种方法) - 数组扁平化 - 将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组 - 深拷贝 - 函数防抖节流 - 实现函数原型方法 call apply bind - 实现数组原型方法 forEach map filter some reduce - 实现...