
js
踏着阳光
这个作者很懒,什么都没留下…
展开
-
nodejs 文件操作
import fs from 'fs';import path from 'path';import glob from 'glob';import mkdirp from 'mkdirp';import rimraf from 'rimraf';export const readFile = file => new Promise((resolve, reject) => { fs.readFile( file, 'utf8', (.原创 2020-09-08 12:13:53 · 267 阅读 · 0 评论 -
js 深拷贝对象库
const extend = require('extend2'); // for deep cloneextend(true, {}, object1, objectN);原创 2020-08-27 09:00:08 · 740 阅读 · 0 评论 -
javaScript中测试代码执行时间
console.time('time'); for (var i = 0; i < 10000000; i++) { i / 2; } console.timeEnd('time');原创 2020-04-08 17:46:05 · 1910 阅读 · 0 评论 -
node redis锁的实现
锁是一种同步机制,用于保证一项资源在任何时候只能被一个进程使用,如果有其他进程想要使用相同的资源,那么就必须等待,直到正在使用资源的进程放弃使用权为止。const redis = require("redis"), client = redis.createClient();client.on("error", function (err) { console.log("...原创 2020-03-09 23:18:26 · 1249 阅读 · 0 评论 -
颜色值16进制转rgba
/** * 颜色值16进制转rgba * @param {String} hex 16进制 * @param {Float} opacity 透明度 */ hexToRgba(hex, opacity) { let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); retu...原创 2020-03-09 15:22:53 · 1914 阅读 · 1 评论 -
js 使用占位符拼接字符串
String.prototype.format = function() { if(arguments.length == 0) return this; var param = arguments[0]; var s = this; if(typeof(param) == 'object') { for(var key in param) ...原创 2019-11-25 15:51:21 · 2365 阅读 · 0 评论 -
setTimeout与resolve、setImmediate比较
//setTimeout是在下一轮“事件循环”的开始时setTimeout(function () { console.log('three');}, 0);//立即resolve()的 Promise 对象,是在本轮“事件循环”(event loop)的结束时执行Promise.resolve().then(function () { console.log('two...原创 2019-11-15 13:29:51 · 605 阅读 · 0 评论 -
基于await 实现sleep函数
function sleep(interval) { return new Promise(resolve => { setTimeout(resolve, interval); })}async function oneAsync() { await sleep(1000); console.log(1)}oneAsync();...原创 2019-11-15 13:26:31 · 2305 阅读 · 0 评论 -
js 数字格式化库
decimal.js提供十进制类型的任意精度数值官网:http://mikemcl.github.io/decimal.js/GitHub:https://github.com/MikeMcl/decimal.jsbig.js一个小型,快速,易于使用的库,用于任意精度的十进制算术官网:http://mikemcl.github.io/big.jsGitHub:https://git...原创 2019-08-27 18:33:44 · 1808 阅读 · 0 评论 -
js 扩展对象以及对象下的方法
//扩展对象以及对象下的方法const extend = (...arguments) => { let obj = {}; //Array.prototype.slice.call(arguments) 将类数组转化为真正的数组 //Array.from()方法或扩展运算符将参数转换为真实数组:Array.from(arguments); [].slic...原创 2019-08-22 17:12:29 · 531 阅读 · 0 评论 -
常用正则表达式
一、校验数字的表达式数字:^[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位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$ 正数、负数、和小...原创 2019-08-20 19:33:21 · 210 阅读 · 0 评论 -
js 拼接url和参数
class Url { /** * 传入对象返回url参数 * @param {Object} data {a:1} * @returns {string} */ getParam(data){ let url = ''; for(var k in data){ let value =...原创 2019-08-20 11:23:33 · 18349 阅读 · 0 评论 -
前端缓存
https://blog.csdn.net/wanshaobo888/article/details/83818411原创 2019-06-21 00:18:31 · 127 阅读 · 0 评论 -
vue 饿了么组件 Element
https://element.eleme.cn/#/zh-CN/component/border原创 2019-06-20 23:44:07 · 13247 阅读 · 0 评论 -
面试题
0 实现add(3,4),add(3)(4)用一个函数function add(a,b) { if (b) { return a + b; } var c = a; return function (a) { return c + a; }}console.log(add(3)(4));console.log(add(3,4));1 ...原创 2019-06-18 17:45:20 · 129 阅读 · 0 评论 -
jq滚动条插件
http://www.jq22.com/jquery-info124原创 2019-05-29 02:16:24 · 469 阅读 · 0 评论 -
jq分享插件share.js
https://github.com/overtrue/share.js原创 2019-05-10 12:44:24 · 2302 阅读 · 0 评论 -
15 款 富文本编辑器
1 百度UEditor官方网址:http://ueditor.baidu.com/website/UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码...2 bootstrap-wysiwyg官方网址:http://www.bootcss.com/p/bootstrap-...转载 2019-04-24 18:13:16 · 2772 阅读 · 0 评论 -
JSON 使用
JSON:JavaScriptObjectNotation(JavaScript 对象表示法)JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。语法JSON 语法是 JavaScript 对象表示语法的子集。数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组JSON 名称/值对JSON 数据的书写...原创 2019-04-24 16:24:37 · 127 阅读 · 0 评论 -
js 字典与Map对象
字典是一种以键-值对形式存储数据的数据结构,像电话簿里面的电话和号码一样,本文字典的的基础类为Array.字典实现:function Dictionary() { this.datastore = []; this.add = add; this.find = find; this.remove = remove; this.showAll =...原创 2019-04-22 18:39:14 · 9716 阅读 · 0 评论 -
js Object.keys()用法
Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for...in循环遍历该对象时返回的顺序一致 。语法Object.keys(obj)参数obj要返回其枚举自身属性的对象。返回值一个表示给定对象的所有可枚举属性的字符串数组。例子// 数组var arr = ['a', 'b', 'c'];...原创 2019-04-22 18:11:14 · 158 阅读 · 0 评论 -
mapv 地理信息可视化开源库
https://github.com/huiyan-fe/mapv/#readme原创 2019-04-19 16:24:17 · 2146 阅读 · 0 评论 -
iframe基于postMessage实现跨域通信
window.postMessage()方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(443为https的默认值),以及主机 (两个页面的模数Document.domain设置为相同的值) 时,这两个脚本才能相互通信。window.postMessage()方法提供了一种受控机制来规避此限制,只要正确的使用,这...原创 2019-04-19 11:29:53 · 714 阅读 · 0 评论 -
JavaScript 多线程-Web Worker 使用教程
w3c在线教程http://www.w3school.com.cn/html5/html_5_webworkers.aspWebwork APIhttps://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers一、概述JavaScript 语言采用的是单线程模型,也就是说,所有任务只...转载 2019-04-16 17:37:03 · 408 阅读 · 0 评论 -
Web 开发技术
https://developer.mozilla.org/zh-CN/docs/Web原创 2019-04-16 13:39:41 · 1292 阅读 · 0 评论 -
framework7 -HTML框架创建iOS应用
http://framework7.taobao.org/原创 2019-04-16 13:37:45 · 741 阅读 · 0 评论 -
js 动画函数库 GreenSock velocityjs
https://greensock.com/learninghttp://velocityjs.org/#duration原创 2019-04-15 18:42:14 · 461 阅读 · 0 评论 -
滑动轮播图 swiper
https://2.swiper.com.cn/原创 2019-04-15 18:36:54 · 395 阅读 · 0 评论 -
旋转木马 轮播图
http://owlcarousel2.github.io/OwlCarousel2/index.html原创 2019-04-15 18:32:16 · 417 阅读 · 0 评论 -
日期时间选择器 bootstrap-datetimepicker
http://www.bootcss.com/p/bootstrap-datetimepicker/原创 2019-04-15 18:29:29 · 478 阅读 · 0 评论 -
打印插件 Print.js
https://printjs.crabbly.com/原创 2019-04-15 18:15:06 · 4384 阅读 · 0 评论 -
js 位运算
重温整数ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢?有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数。数值范围从 -2147483648 到 2147483647。可以以两种不同的方式存储二进制形式的有符...原创 2019-04-12 17:58:47 · 2750 阅读 · 1 评论 -
深入理解this机制——箭头函数
痛点 对于闭包的痛点在于,闭包的this默认绑定到window对象,但又常常需要访问嵌套函数的this,所以常常在嵌套函数中使用var that = this,然后在闭包中使用that替代this,使用作用域查找的方法来找到嵌套函数的this值var a = 0;function foo(){ function test(){ console.log(thi...转载 2019-04-11 18:16:58 · 883 阅读 · 0 评论 -
深入理解javascript作用域——词法作用域和动态作用域
词法作用域 编译器的第一个工作阶段叫作分词,就是把由字符组成的字符串分解成词法单元。这个概念是理解词法作用域的基础 简单地说,词法作用域就是定义在词法阶段的作用域,是由写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变。关系 无论函数在哪里被调用,也无论它如何被调用,它的词法作用域都只由函数被声明时所处的位置决定function foo...转载 2019-04-11 18:04:59 · 247 阅读 · 0 评论 -
js 集合
并集:将两个集合中的成员进行合并,得到一个新的集合交集:两个集合共同存在的成员组成一个新的集合补集:属于一个集合而不属于另一个集合的成员组成的集合function Set() { this.dataStore = []; this.add = add; this.remove = remove; this.show = show; this.c...原创 2019-04-11 17:27:31 · 4517 阅读 · 0 评论 -
js 插入排序
插入排序有两个循环,外循环数组元素挨个移动,而内循环和外循环选中的元素进行比较。如果外循环中选中的元素比内循环选中的元素要小,那么数组整体会向右移动,为内循环的这个元素腾出位置。(将较大数组向右移动,为数组较小元素腾出位置。)function CArray(numElements) { this.dataStore = []; this.pos = 0; this.n...原创 2019-04-11 16:57:07 · 648 阅读 · 0 评论 -
js 选择排序
第一个元素和其他元素进行比较,检查完所有元素后,最小元素会被放到数组的第一个位置,然后算法会从第二个位置继续。function CArray(numElements) { this.dataStore = []; this.pos = 0; this.numElements = numElements; this.insert = insert; ...原创 2019-04-11 16:25:00 · 347 阅读 · 0 评论 -
js 冒泡排序
如果数字按升序排序,比较相邻数据,如果左侧小于右侧,则交换数组,最大的数值在相邻比较中被漂浮到最右边。像气泡一样从数组的一端漂浮到另一端。function CArray(numElements) { this.dataStore = []; this.pos = 0; this.numElements = numElements; this.inser...原创 2019-04-11 15:51:07 · 172 阅读 · 0 评论 -
字蛛(font-spider)使用
grunt 构建安装npm install grunt-font-spider --save-dev书写css/*声明 WebFont*/@font-face { font-family: 'pinghei'; src: url('../font/pinghei.eot'); src: url('../font/pinghei.eot?#font-spid...原创 2019-04-04 14:23:35 · 2652 阅读 · 0 评论 -
grunt 打包雪碧图 grunt-spritesmith
安装npm install grunt-spritesmith --save-devmodule.exports = function (grunt) { // Configure grunt grunt.initConfig({ sprite:{ all: { src: 'path/to/your/sprites/*.png',////素...原创 2019-04-04 14:14:46 · 233 阅读 · 0 评论