- 博客(29)
- 收藏
- 关注
原创 利用reduce方法 优雅的处理不定长度的链式异步操作
// 利用reduce同步处理promise const p = function(num) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(num) }, 2000) }) }; // list: [1, 2, 3, 4,....,'end'] list.reduce(a...
2018-07-11 17:36:03
1093
原创 小程序中使用async await的注意点
需要在文件引入regenerator-runtime (注:也就是facebook的regenerator, 下载本地引入即可)import regeneratorRuntime from '../../libs/regenerator-runtime';
2018-07-11 17:26:13
5133
原创 小程序请求浅封装
request.jsimport wepy from 'wepy'// 接口前缀import { prefix } from '@/config.js'function checkStatus(response) { if (response.statusCode >= 200 && response.statusCode < 300) return response...
2018-07-11 17:21:18
940
原创 wepy中使用redux-saga作为异步中间件
依赖安装 redux redux-saga wepy-reduxstore/index.js import { createStore, applyMiddleware } from 'redux'import createSagaMiddleware from 'redux-saga/dist/redux-saga'import rootReducer from './reduce...
2018-07-11 17:15:33
882
转载 android Application的生命周期
public class App extends Application { @Override public void onCreate() { // 程序创建的时候执行 Log.d(TAG, "onCreate"); super.onCreate(); } @Override pub
2018-07-11 17:02:42
653
转载 eslint校验规则
"off"或者0 //关闭规则关闭"warn"或者1 //在打开的规则作为警告(不影响退出代码)"error"或者2 //把规则作为一个错误(退出代码触发时为1)"no-alert": 0,//禁止使用alert confirm prompt"no-array-constructor": 2,//禁止使用数组构造器"no-bitwise": 0,//禁止使用按位运算符
2018-07-11 17:00:21
1617
转载 面试题 手写Promise
class Promise{ constructor(executor){ this.state = 'pending'; this.value = undefined; this.reason = undefined; this.onResolvedCallbacks = []; this.onRejectedCallbacks = []; let reso...
2018-07-10 12:47:59
1005
转载 理解BFC原理
原文地址: https://zhuanlan.zhihu.com/p/25321647常见定位方案:普通流 (normal flow)在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML 文档中的位置决定...
2018-02-24 11:35:08
276
原创 Android Application的生命周期
public class App extends Application { @Override public void onCreate() { // 程序创建的时候执行 Log.d(TAG, "onCreate"); super.onCreate(); } @Override pub
2017-12-08 16:57:57
329
转载 json转excel js
function exportExcel(FileName = '数据统计', JSONData = [], columns = []) { let excel = ''; //设置表头 let row = ''; for (let i = 0, l = columns.length; i row += `${columns[i].title
2017-12-05 10:56:27
515
翻译 自定义轮播图
html结构: ul#selector > li > imgjs: 改 es6 class写法class Swiper { constructor() { this.transition = "-webkit-transition: -webkit-transform .3s ease"; this.css = [ "z-index: 3;
2017-11-21 17:44:36
274
原创 理解get和post的区别
最直观的区别无非就是get把请求参数放在url,post把请求参数放在request body;实质上,get和post都是tcp链接;对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
2017-11-10 10:24:31
284
原创 事件循环和任务队列
事件循环: 调用栈执行完 -> 任务队列 (所有微观任务 -> 1个宏观任务 -> 所有微观任务 -> 1 个宏观任务 。。。。。。)任务队列: setTimeout ajax 之类的都属于宏观任务 Promise属于微观任务 example: setTimeout(() => {console.log(4)},0);new Promise
2017-11-02 18:20:23
711
原创 npm和yarn的使用对比
NPMYARN说明npm inityarn init初始化某个项目npm install/linkyarn install/link默认的安装依赖操作npm install taco —saveyarn add taco安装某个依赖,并且默认保存到package.
2017-08-23 15:09:03
4371
原创 常用正则表达式
1 用户名正则//用户名正则,4到16位(字母,数字,下划线,减号)var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;//输出 trueconsole.log(uPattern.test("iFat3"));2 密码强度正则//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符var pPatt
2017-06-01 12:43:55
281
转载 安卓权限
安卓权限访问登记属性android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限获取错略位置android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米获取精确位置android.permissi
2017-05-09 15:48:58
284
转载 React的PropTypes 验证
React.createClass({ propTypes: { // 可以声明 prop 为指定的 JS 基本类型。默认 // 情况下,这些 prop 都是可传可不传的。 optionalArray: React.PropTypes.array, optionalBool: React.PropTypes.bool, optionalFunc: Rea
2017-05-03 23:20:20
919
转载 关于JSON详解
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的?先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有误记得看完全文并评论,哈哈。var friend={ firstName: 'Good', 'lastName': 'Man', 'a
2017-04-20 19:42:11
451
翻译 常用正则表达式大全
一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(
2017-04-14 00:44:21
255
原创 递归将嵌套数组改成二维数组
eachOption = (level)=>{ var arr = []; function refining(level,arr) { const length = level.length; for (var i = 0; i arr.push({ id:level[i].id,
2017-04-06 13:57:39
1540
原创 promise 解决异步问题
常规面试题: for(var i = 0; i setTimeout(function(){console.log(new Date, i)}, 1000);}console.log(new Date, i)5->5,5,5,5,5promise方法实现:const task = [];for(var i = 0; i (
2017-04-01 10:08:38
774
翻译 react的生命周期
实例化首次实例化getDefaultPropsgetInitialStatecomponentWillMountrendercomponentDidMount实例化完成后的更新getInitialStatecomponentWillMountrendercomponentDidMount存在期组件已存在时的状态改变componentWillR
2017-03-20 13:54:09
291
原创 利用百度tts 实现文字转语音(node)
var http = require('http'); // 通过http模块访问百度的接口var querystring = require('querystring'); // 处理请求参数的querystring模块var fs = require('fs'); // fs模块,用来保存语音文件var path = require('path');
2017-02-09 14:07:06
6365
原创 react中使用echarts
依赖: "echarts": "^3.4.0", "echarts-for-react": "^1.1.6", "element-resize-event": "^2.0.7" (这个是干嘛的暂时不知道 )ReactEcharts.jsimport React from 'react';import ReactEcharts from 'echart
2017-02-08 16:57:57
3522
原创 判断字符串长度函数
function lenstr(str){ var len = 0; for (var i=0; i var c = str.charCodeAt(i); //单字节加1 if ((c >= 0x0001 && c len++; } else { len+=2;
2017-02-06 17:31:35
3280
原创 常用的对数组的操作
concat()连接两个或更多的数组,并返回结果。every()检测数值元素的每个元素是否都符合条件。filter()检测数值元素,并返回符合条件所有元素的数组。indexOf()搜索数组中的元素,并返回它所在的位置。join()把数组的所有元素放入一个字符串。lastIndex
2017-01-20 13:52:51
396
原创 map, foreach, for的用法区别
array.forEach(callback[, thisObject]);下面是参数的详细信息: 1、 callback : 函数测试数组的每个元素。 2、thisObject : 对象作为该执行回调时使用.forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环。Array在ES5新增的方法中,参数都是function类型,默认
2017-01-20 11:44:19
3485
原创 node编写邮件第三方客户端发送邮件
模块工具: nodemailer 我是用的是最新的v2.7.0 nodemailer地址:https://nodemailer.com/具体代码:var nodemailer = require('nodemailer'); var transport = nodemailer.createTransport({ service: 'qq', au
2017-01-20 10:36:21
540
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人