自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 收藏
  • 关注

原创 TypeScript经常用到的高级类型

前言ts入门了一段时间,可是碰上一些高级类型总是一头雾水,还需要去看文档,所以总结了一些工作中经常用到的一些高级类型。所以阅读之前你需要掌握一点儿ts基础。一、交叉类型交叉类型将多个类型合并为一个新的类型,新的具有所有参与合并的类型的特性,本质上是一种并的操作。形式如下:T & U//例子:function extend<T , U>(first: T, sec...

2019-11-24 16:34:28 2256

原创 正则表达式入门

有些知识,我们只需要付出一点点时间,把它掌握了,会大大提高我们的效率,节省我们的时间。正则表达式就是这样的知识,但是,作为入行好几年的我来说,正则表达式一直是一头雾水,今天决定把它好好研究研究。1.什么是正则表达式正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科...

2019-08-08 11:15:16 637

原创 再也不用怕正则表达式了

有些知识,我们只需要付出一点点时间,把它掌握了,会大大提高我们的效率,节省我们的时间。正则表达式就是这样的知识,但是,作为入行好几年的我来说,正则表达式一直是一头雾水,今天决定把它好好研究研究。什么是正则表达式正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子.1.基本匹配上面是最基本的操作,exec是js中的用法。会在一行文本中找到满足正则表达式...

2019-08-06 20:11:36 633

原创 你还在为了 command not found:xxx 绞尽脑汁吗

我们平时的工作和学习中,如果要安装一个工具,比如我们打包用的nsh-git-push-tag,有时候安装完了之后,我们在命令行输入nsh-git-push-tag, 有时候会报commond not found这个错误,甚至我们在安装webpack,npm,git等命令的时候都会出现这样的错误,那么这个问题怎么解决呢?拿nsh-git-push-tag举例第一步,在命令行输入which ...

2019-07-29 14:49:54 772

原创 想搞懂async?先从单向链表讲起

async怎么用async函数返回一个Promise对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。举一个栗子:let timeout = ms => { console.log('a') return new Promise(resolve => { cons...

2019-07-28 17:23:02 318

原创 zsh command not found 解决方法无标题

出现zsh: command not found: xxx解决方法:把 bash shell 中.bash_profile 全部环境变量加入zsh shell里就好step1:open .zshrcstep2:找到 “# User configuration”加入source ~/.bash_profilestep3:source .zshrc...

2019-06-25 14:35:44 4340

原创 TypeScript中的范型

一、定义比如我们有一个函数,如果不使用范型是这样的function getData(arg: number): number { return arg;}它只能传入number类型,如果我们要传入一个string类型的是编译不通过的,所以我们可以写另一个函数或者用any类型function getData1(arg: string): string { return a...

2019-06-20 20:30:34 625

原创 TypeScript中的接口

一、可索引的接口对数组的约束interface UserArr{ [index:number] : string}let arr:UserArr = ['aaa','bbb']console.log(arr[0]) // aaa对对象的约束interface UserObj{ [key:string]: string | number}const...

2019-06-19 15:28:18 404

原创 TypeScript中的函数详解

TypeScript中的函数详解

2019-06-18 17:51:37 730

原创 执行shell脚本进入指定目录

在linux环境下,常有通过shell脚本进入指定目录的操作,例如有一段脚本 text.sh:#!/bin/sh cd ~/learnpwdls -l在shell环境下通过./text.sh执行这段脚本是无法进入learn目录的; 这是因为shell在执行脚本时,会创建一个子shell,并在子shell中逐个执行脚本中的指令; 而子shell中从父shell中继承了环境变量,但是执行...

2019-06-11 14:43:08 6844

原创 git 远端增加仓库并上传代码到远程仓库中

远程仓库的增加git remote add githubleon(你的远程站点名) 仓库地址或者ssh协议的地址(如下图的ssh地址)这样你的远程仓库就创建好了githubleon就是指的你的远程站点名仓库地址或者ssh协议的地址指的是下图那个[email protected]:LeonVincent/git_learning.git如果是http协议的话,格式差不多是这样https://...

2019-06-03 20:50:18 2273 1

原创 What's new in TypeScript

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-1-4.htmlWith union types, you can now specify the desired behavior at both the function declaration site and the call site:(用联合类...

2019-06-03 18:39:29 262

原创 git中正确删除文件的方法

git rm index.html //删除暂存区的index.html 可直接用这个方法,不用第一个方法

2019-05-31 16:05:16 1485

原创 git中查看一个文件在两个不同的分支中的差异

git diff branch1 branch2 -- index.html

2019-05-31 16:04:13 6546

原创 git中消除最近的几次提交

git reset --hard _commit //_commit 要退回的最早一个commit的前一个git reset --hard HEAD //回退到上一个版本

2019-05-31 16:02:29 2706

原创 git中如何让工作区的文件恢复为和暂存区一样

git checkout -- index.html// index.html表示你要恢复的文件

2019-05-31 16:01:56 2184

原创 git 中如何让暂存区恢复成和HEAD的一样

git reset HEAD// 所有暂存区的文件都会恢复成和HEAD一样git reset HEAD -- index.html//恢复单个的文件

2019-05-31 16:01:04 1625

原创 git中比较工作区和暂存区所含文件的差异

git diff //直接git diff 可查看所有的工作区和暂存区的差异git diff -- readme // -- (空格) 后面跟哪个文件就查看哪个文件工作区和暂存区之间的差异

2019-05-31 15:55:54 1970

原创 git中比较暂存区和HEAD所含文件的差异

git diff --cached

2019-05-31 15:55:08 775

原创 git中修改以前的commit的message

git rebase -i commit_old // -i 交互式//commit_old 指的是要变更的commit的前一个commit 输入命令后会弹出两次编辑面板,这时候根据说明来就可以了

2019-05-31 15:54:20 3856

原创 git中修改上一次提交的commit的message

git commit --amend// 后面是vim命令 w: 写入 q: 退出

2019-05-31 15:52:55 4696

原创 git中删除不必要的分支

git branch -d 分支名 //-d如果删除不了,可以用-D

2019-05-31 15:51:47 1615

原创 mac中的npm权限问题

当我用create-react-app 初始化项目的时候老是报一个权限的错误Error: EACCES: permission denied下面介绍两种解决这个问题的方法:1.修改npm默认目录的权限1、找到npm的目录路径:npm config get prefix对于很多系统,路径将会是 /usr/local.警告:如果出来的路径仅是 /usr,请调到方法2,否则你可能会设置...

2019-04-29 15:20:50 9598

原创 Mac 显示桌面和窗口最小化方法的几个快捷键

使用快捷键 Command+M,可以实现快速最小化当前窗口的目的。使用快捷键 Command+Option+M,可以实现快速最小化当前应用程序所有窗口的目的。比如你想一下子最小化多个 Finder 窗口,就可以用该快捷键。使用快捷键 Command+H,可以实现快速隐藏当前应用程序所有窗口的目的。使用快捷键 Command+Option+H,可以实现快速隐藏除当前应用程序之外...

2019-04-16 10:26:52 8208

原创 你不知道的JavaScript(上中下三册) 电子版高清 -- 百度云

链接:https://pan.baidu.com/s/1xIT2R4flZnnahnmIl7VYEA 密码:754r

2019-04-04 21:25:13 2407

原创 ES6 中的 Proxy 以及用Proxy封装一个供全宇宙使用的数据请求api

Proxy(代理) 是 ES6 中新增的一个特性。Proxy 让我们能够以简洁易懂的方式控制外部对对象的访问。其功能非常类似于设计模式中的代理模式。使用 Proxy 的好处是:对象只需关注于核心逻辑,一些非核心的逻辑(如:读取或设置对象的某些属性前记录日志;设置对象的某些属性值前,需要验证;某些属性的访问控制等)可以让 Proxy 来做。从而达到关注点分离,降级对象复杂度的目的。使用方法va...

2019-04-04 20:24:14 2161

原创 跟着underscore学防抖

防抖的原理就是:你尽管触发事件,但是我一定在事件触发 n 秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,那我就以新的事件的时间为准,n 秒后才执行,总之,就是要等你触发完事件 n 秒内不再触发事件,我才执行,真是任性呐!简单来说就是将多次执行变为最后一次执行。// 这个是用来获取当前时间戳的function now() { return +new Date()}...

2019-03-24 18:09:21 278

原创 跟着 underscore 学节流

节流的原理很简单:如果你持续触发事件,每隔一段时间,只执行一次事件。/** * underscore 节流函数,返回函数连续调用时,func 执行频率限定为 次 / wait * * @param {function} func 回调函数 * @param {number} wait 表示时间窗口的间隔 * @param {object} ...

2019-03-24 18:05:24 203

原创 什么是BFC?看这一篇就够了

BFC 定义BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。在解释什么是BFC之前,我们需要先知道Box、Formatting Context的概念。Box:css布局的基本单位Box 是 CSS 布局...

2019-03-23 16:22:59 272906 91

原创 本地和远程分支用git merge的异同

一.本地分支当你修改的分支为本地分支时(devBr),修改完了后要merge到master上 1. cd &lt;your workspace&gt; 2. git branch //假定现在所在的branch是master,并最好保证没有未提交的修改,并且已经更新到最新 3. git checkout -b devBr //创建一个本地的sourceBranch并切换...

2019-01-14 16:15:55 7178

原创 vue2.0的过滤器 Filters

过滤器的介绍vue1.0有自己的内置过滤器,大家可以点开查看,不过vue2.0已经废弃掉了。现在的过滤器只能自己定义,自己定义的话有两种方式,全局过滤器和局部过滤器全局过滤器或者在创建 Vue 实例之前全局定义过滤器:Vue.filter('capitalize', function (value) { if (!value) return '' value = value.toS...

2019-01-09 21:44:30 774 1

原创 MongoDB+Node.js+express简单实现数据的提交与回显

这是一个从前端到后台到数据库都是用js写的小demo,所以我们的口号是:将javascript进行到底一、项目目录从图片上也可以看出来,用了一个伪MVC的设计模式,简单来说controllers文件夹是C层,它类似于一个包工头,把所有的脏活累活都给了M层,M层得到C层的指令去拿到数据然后处理好后,再反给C层,C层把数据给V层,V层渲染数据。二、package.json{ "name"...

2018-12-29 16:54:45 3279 2

原创 MongoDB的安装、配置及简单操作

一、安装1.下载Mac中的各个版本的下载地址https://www.mongodb.org/dl/osx?_ga=2.213291732.1390518058.1530502632-576243859.1530502632选择你需要的版本进行下载。下载后的文件夹为了优雅可以给它改名位mongodb2.移动解压后的文件夹复制mogodb文件夹,然后选择前往在弹出的窗口中输入 ...

2018-12-27 20:55:56 478

原创 使用Node.js的formidable模块实现文件上传

在我上一篇写的Node.js实现简单的POST请求里面POST请求接受参数需要写两个事件,这难免有些不太方便如果我们用formidable来接受参数的话,会变得特别方便。下面我们来写一个Demo,来利用formidable来实现图片上传1.下面来看一眼 目录结构2.先来写一个简单的前端上传页面index.html&lt;!DOCTYPE html&gt;&lt;html lan...

2018-12-20 15:23:04 1468

原创 mac下常见vim的命令

mac下常见vim的命令:1. 在默认的”指令模式”下按 i 进入编辑模式2. 在非指令模式下按 ESC 返回指令模式3. 在”指令模式”下输入::w 保存当前文件:q 退出编辑,如果文件为保存需要用强制模式:q! 强制退出不保存修改:wq 组合指令, 保存并退出4. 在”指令模式”下移动:h 左 j 下 k 上 l 右...

2018-12-20 11:13:26 3057

原创 Node.js实现简单的POST请求

这个小demo的结构和上一篇写的Node.js实现简单的GET请求一样。唯一不同的是之前的get.js改成了post.js下面是post.js文件//这个案例展示get请求参数如何获得var finalhandler = require('finalhandler')var http = require('http')var serveStatic = require('serve-...

2018-12-19 18:31:49 5847 1

原创 Node.js实现简单的GET请求

GET请求的识别非常的简单,就是URL的识别,使用的是url.parse(req.url,true).query先来看一下目录public 下的index.html文件&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF

2018-12-19 17:39:28 4317 1

原创 js获取当前电脑的ip

&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;

2018-12-19 15:24:33 12303 8

原创 Node.js中package.json中库的版本号详解

1.明确版本&quot;dependencies&quot;: { &quot;solarLunar&quot;: &quot;1.0.0&quot;//明确限制版本为1.0.0}2.使用&quot;~&quot;&quot;dependencies&quot;: { &quot;solarLunar&quot;: &quot;~1.0.0&quot;//大约近似等于1.

2018-12-19 11:57:02 1353

原创 小程序的登录鉴权&&数据解密

小程序的登录鉴权&amp;&amp;数据解密登录流程1、用户使用wx.login获取临时code,有效期为5分钟2、将临时code传到我们自己的后端服务,调用微信的API获取用户的session_key和openid3、后端自定义新的密钥并关联返回的session_key和openid,将新的密钥返给前端4、前端发送请求的时候,带着密钥,后端进行解析后返回数据session_key和...

2018-12-17 16:38:50 1819

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除