- 博客(136)
- 收藏
- 关注
原创 TypeScript经常用到的高级类型
前言ts入门了一段时间,可是碰上一些高级类型总是一头雾水,还需要去看文档,所以总结了一些工作中经常用到的一些高级类型。所以阅读之前你需要掌握一点儿ts基础。一、交叉类型交叉类型将多个类型合并为一个新的类型,新的具有所有参与合并的类型的特性,本质上是一种并的操作。形式如下:T & U//例子:function extend<T , U>(first: T, sec...
2019-11-24 16:34:28
2385
原创 正则表达式入门
有些知识,我们只需要付出一点点时间,把它掌握了,会大大提高我们的效率,节省我们的时间。正则表达式就是这样的知识,但是,作为入行好几年的我来说,正则表达式一直是一头雾水,今天决定把它好好研究研究。1.什么是正则表达式正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科...
2019-08-08 11:15:16
670
原创 再也不用怕正则表达式了
有些知识,我们只需要付出一点点时间,把它掌握了,会大大提高我们的效率,节省我们的时间。正则表达式就是这样的知识,但是,作为入行好几年的我来说,正则表达式一直是一头雾水,今天决定把它好好研究研究。什么是正则表达式正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子.1.基本匹配上面是最基本的操作,exec是js中的用法。会在一行文本中找到满足正则表达式...
2019-08-06 20:11:36
658
原创 你还在为了 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
798
原创 想搞懂async?先从单向链表讲起
async怎么用async函数返回一个Promise对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。举一个栗子:let timeout = ms => { console.log('a') return new Promise(resolve => { cons...
2019-07-28 17:23:02
331
原创 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
4361
原创 TypeScript中的范型
一、定义比如我们有一个函数,如果不使用范型是这样的function getData(arg: number): number { return arg;}它只能传入number类型,如果我们要传入一个string类型的是编译不通过的,所以我们可以写另一个函数或者用any类型function getData1(arg: string): string { return a...
2019-06-20 20:30:34
638
原创 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
502
原创 执行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
6911
原创 git 远端增加仓库并上传代码到远程仓库中
远程仓库的增加git remote add githubleon(你的远程站点名) 仓库地址或者ssh协议的地址(如下图的ssh地址)这样你的远程仓库就创建好了githubleon就是指的你的远程站点名仓库地址或者ssh协议的地址指的是下图那个git@github.com:LeonVincent/git_learning.git如果是http协议的话,格式差不多是这样https://...
2019-06-03 20:50:18
2286
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
270
原创 git中消除最近的几次提交
git reset --hard _commit //_commit 要退回的最早一个commit的前一个git reset --hard HEAD //回退到上一个版本
2019-05-31 16:02:29
2731
原创 git 中如何让暂存区恢复成和HEAD的一样
git reset HEAD// 所有暂存区的文件都会恢复成和HEAD一样git reset HEAD -- index.html//恢复单个的文件
2019-05-31 16:01:04
1645
原创 git中比较工作区和暂存区所含文件的差异
git diff //直接git diff 可查看所有的工作区和暂存区的差异git diff -- readme // -- (空格) 后面跟哪个文件就查看哪个文件工作区和暂存区之间的差异
2019-05-31 15:55:54
1994
原创 git中修改以前的commit的message
git rebase -i commit_old // -i 交互式//commit_old 指的是要变更的commit的前一个commit 输入命令后会弹出两次编辑面板,这时候根据说明来就可以了
2019-05-31 15:54:20
3884
原创 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
9743
原创 Mac 显示桌面和窗口最小化方法的几个快捷键
使用快捷键 Command+M,可以实现快速最小化当前窗口的目的。使用快捷键 Command+Option+M,可以实现快速最小化当前应用程序所有窗口的目的。比如你想一下子最小化多个 Finder 窗口,就可以用该快捷键。使用快捷键 Command+H,可以实现快速隐藏当前应用程序所有窗口的目的。使用快捷键 Command+Option+H,可以实现快速隐藏除当前应用程序之外...
2019-04-16 10:26:52
8510
原创 你不知道的JavaScript(上中下三册) 电子版高清 -- 百度云
链接:https://pan.baidu.com/s/1xIT2R4flZnnahnmIl7VYEA 密码:754r
2019-04-04 21:25:13
2430
原创 ES6 中的 Proxy 以及用Proxy封装一个供全宇宙使用的数据请求api
Proxy(代理) 是 ES6 中新增的一个特性。Proxy 让我们能够以简洁易懂的方式控制外部对对象的访问。其功能非常类似于设计模式中的代理模式。使用 Proxy 的好处是:对象只需关注于核心逻辑,一些非核心的逻辑(如:读取或设置对象的某些属性前记录日志;设置对象的某些属性值前,需要验证;某些属性的访问控制等)可以让 Proxy 来做。从而达到关注点分离,降级对象复杂度的目的。使用方法va...
2019-04-04 20:24:14
2213
原创 跟着underscore学防抖
防抖的原理就是:你尽管触发事件,但是我一定在事件触发 n 秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,那我就以新的事件的时间为准,n 秒后才执行,总之,就是要等你触发完事件 n 秒内不再触发事件,我才执行,真是任性呐!简单来说就是将多次执行变为最后一次执行。// 这个是用来获取当前时间戳的function now() { return +new Date()}...
2019-03-24 18:09:21
297
原创 跟着 underscore 学节流
节流的原理很简单:如果你持续触发事件,每隔一段时间,只执行一次事件。/** * underscore 节流函数,返回函数连续调用时,func 执行频率限定为 次 / wait * * @param {function} func 回调函数 * @param {number} wait 表示时间窗口的间隔 * @param {object} ...
2019-03-24 18:05:24
238
原创 什么是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
274884
91
原创 本地和远程分支用git merge的异同
一.本地分支当你修改的分支为本地分支时(devBr),修改完了后要merge到master上 1. cd <your workspace> 2. git branch //假定现在所在的branch是master,并最好保证没有未提交的修改,并且已经更新到最新 3. git checkout -b devBr //创建一个本地的sourceBranch并切换...
2019-01-14 16:15:55
7317
原创 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
813
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
3307
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
491
原创 使用Node.js的formidable模块实现文件上传
在我上一篇写的Node.js实现简单的POST请求里面POST请求接受参数需要写两个事件,这难免有些不太方便如果我们用formidable来接受参数的话,会变得特别方便。下面我们来写一个Demo,来利用formidable来实现图片上传1.下面来看一眼 目录结构2.先来写一个简单的前端上传页面index.html<!DOCTYPE html><html lan...
2018-12-20 15:23:04
1513
原创 mac下常见vim的命令
mac下常见vim的命令:1. 在默认的”指令模式”下按 i 进入编辑模式2. 在非指令模式下按 ESC 返回指令模式3. 在”指令模式”下输入::w 保存当前文件:q 退出编辑,如果文件为保存需要用强制模式:q! 强制退出不保存修改:wq 组合指令, 保存并退出4. 在”指令模式”下移动:h 左 j 下 k 上 l 右...
2018-12-20 11:13:26
3224
原创 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
5881
1
原创 Node.js实现简单的GET请求
GET请求的识别非常的简单,就是URL的识别,使用的是url.parse(req.url,true).query先来看一下目录public 下的index.html文件&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF
2018-12-19 17:39:28
4353
1
原创 js获取当前电脑的ip
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
2018-12-19 15:24:33
12320
8
原创 Node.js中package.json中库的版本号详解
1.明确版本"dependencies": { "solarLunar": "1.0.0"//明确限制版本为1.0.0}2.使用"~""dependencies": { "solarLunar": "~1.0.0"//大约近似等于1.
2018-12-19 11:57:02
1399
原创 小程序的登录鉴权&&数据解密
小程序的登录鉴权&&数据解密登录流程1、用户使用wx.login获取临时code,有效期为5分钟2、将临时code传到我们自己的后端服务,调用微信的API获取用户的session_key和openid3、后端自定义新的密钥并关联返回的session_key和openid,将新的密钥返给前端4、前端发送请求的时候,带着密钥,后端进行解析后返回数据session_key和...
2018-12-17 16:38:50
1866
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人