自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 循环数组

var circulateArray = function (array) { this.array = Object.prototype.toString.call(array) === '[object Array]' ? array : []; this.index = 0;};circulateArray.prototype.add = function (eleme...

2019-05-08 10:36:48 644

原创 判断闰年

var isLeapYear = function (year) { if (isNaN(year) || isNaN(parseFloat(year))) { throw new Error('Year is not number') } else { return year % 4 === 0 && year % 100 !==...

2019-05-08 09:57:03 126

原创 canvas绘制星星

var Canvas = function (el, parameter) { this.canvas = document.getElementById(el); this.width = canvas.width; this.height = canvas.height; this.pen = canvas.getContext('2d'); para...

2019-05-07 18:27:18 643

原创 阶乘

var factorial = function (n) { var product = 1; while (n) { product *= n-- } return product;};console.log(factorial(3));var factorial = function (n) { if (n) { ...

2019-05-07 12:23:39 101

原创 设置元素class

var ElementItem = (function () { function ElementItem(el) { this.el = el; } //设置class名 ElementItem.prototype.addClass = function (className) { var classList = this.el....

2019-04-18 16:40:33 256

原创 js实现抽象工厂模式

class Circle { constructor() { this.shape = "circle" }}class Rectangle { constructor() { this.shape = "rectangle" }}class ShapeFactory { constructor() {} getShapeInstance(shapeType) { ...

2019-03-28 11:46:41 435

原创 js实现工厂模式

class Circle{ constructor(){ this.shape="circle" }}class Rectangle{ constructor(){ this.shape="rectangle" }}class ShapeFactory{ constructor(){ } getShapeInstance(shapeType){ shapeTyp...

2019-03-28 11:12:25 637

原创 js实现单例模式

let SingleObj = (function() { let instance return function() { if(instance) { return instance } else { this.name = "Join" instance = this } }}())obj = new SingleObj()console.log(...

2019-03-27 17:57:18 1163

原创 小程序onPageNotFound的坑

App.onPageNotFound和wx.onPageNotFound用来监听小程序要打开的页面不存在事件。这里有一个坑就是,如果在小程序里面使用wx.navigateTo等路由Api进行页面跳转,如果页面不存在只会报错,并不会触发onPageNotFound。onPageNotFound有一个使用场景就是,当扫码登录的页面不存在时可以重定向到另一个存在的页面。App({ on...

2019-03-27 14:26:33 6114

转载 微信小程序版本更新提示

App({ onLaunch:function(){ //版本更新提示 let updateManager= wx.getUpdateManager() updateManager.onUpdateReady(function () { wx.showModal({ title: '版本更新提示'...

2019-03-27 10:44:21 553

原创 VScode自动编译Typescript

安装typescriptnpm install -g typescript使用cmd到达项目目录下, 使用下列命令进行初始化,创建tsconfig.json 文件tsc -init打开tsconfig.json文件修改相应配置,可以直接使用如下配置{ "compilerOptions": { "target": "es5", "noImplicitAny"...

2019-03-22 12:00:33 873

原创 js判断一个数组是否为另一个数组的子集

var arr=[1,2,3,null,NaN,undefined,Infinity,'']var brr=[0,1,2,3,4,null,NaN,undefined,Infinity,'']if(!Array.prototype.subsetTo){ Array.prototype.subsetTo=function(arr){ return this.every(v=>arr...

2019-03-21 18:19:06 6676

原创 去重

数组去重在ES6可以通过Set数据结构来实现let arr=[null,null,undefined,undefined,NaN,NaN,Infinity,Infinity,'','',,1,'1']console.log([...new Set(arr)])//[null, undefined, NaN, Infinity, "",1,'1']使用filter方法:let ar...

2019-03-21 17:27:52 203

原创 js判斷变量的类型

一:判断数组:console.log(Array.isArray([]))//trueconsole.log([] instanceof Array)//trueconsole.log(Object.prototype.toString.call([])==='[object Array]')//true二:判断函数let fn=()=>{}console.log(fn...

2019-03-21 16:22:39 82

原创 js平铺数组

平铺数组可以使用ES6的flat方法。但是在微信小程序里面并不支持ES6的flat方法,所以我写了下面这个递归函数let flat=function(arr,n=0){ return arr.reduce((a,b)=>{ if(Object.prototype.toString.call(b)==='[object Array]'&&n--){ ret...

2019-03-21 11:19:43 2363 1

原创 斐波那契数列

计算斐波那契数列第n项的值//方法一:递归var Fibonacci = function(n) { if(Number.isInteger(n) && n) { return n > 2 ? arguments.callee(n - 1) + arguments.callee(n - 2) : 1 }}console.log(Fibonacci(3), ...

2019-03-18 16:36:18 90

原创 赋值运算符返回等号右边的值

下面的例子是一个关于this指向的陷阱var obj={ fun:function(){console.log(this);}};(obj.fun)();//输出obj对象(obj.fun=obj.fun)();//输出window对象这个例子的输出结果出乎意料,要想明白这其中的奥妙,我们要弄明白赋值运算符('=')的特性.。在此之前,我们先来认识一个属性——writabl...

2019-03-18 16:01:17 1165

原创 微信小程序请求拦截器

const apiHttp = 'https://pdm.chiefchain.cn/'const header = { cookie: 'JSESSIONID=' + wx.getStorageSync('JSESSIONID'), 'content-type': 'application/x-www-form-urlencoded'}function request(url,...

2019-03-18 15:27:55 6071 1

原创 利用Proxy实现函数的链式调用

let pipe = function(value) { let funStack = [] return new Proxy({}, { get: function(target, fnName,receive) { if(fnName === 'do') { return funStack.reduce((val, fn) => fn(val), value) ...

2019-03-18 14:52:11 466

原创 用Generator函数实现jQuery的toggle方法

HTMLElement.prototype.toggle = function (...args) { let generator = function* (...args) { let i = 0; do { yield args[i++ % args.length] } while (true) }; ...

2019-03-18 10:45:23 100

转载 观察者模式

var pubsub = {};(function (q) { var topics = {}, // 回调函数存放的数组 subUid = -1; // 发布方法 q.publish = function (topic, args) { if (!topics[topic]) { return false; } setTimeout(f...

2019-03-08 10:27:02 85

原创 装饰模式

let plane={ fire:()=>{ console.log("发射炮弹") }}let fireMissile=()=>{ console.log("发射导弹")}let fireAtomicBomb=()=>{ console.log("发射原子弹")}let fire1=plane.fireplane....

2019-03-08 00:45:46 62

原创 求数列连续项的和的最大值

public class Test { public static int[] arr={10,-20,30,40,22,-54,23,50,30}; public static int[] brr; public static int maxSum(int[] args){ int maxSum=0; for(int i=0;i<args.length;i++){ i...

2019-03-07 17:40:45 1086

原创 按位运算的骚操作

程序中的所有数在计算机内存中都是以二进制的形式存储的。位运算就是直接对整数在内存中的二进制位进行操作。所以使用位运算的效率更高。并且位运算显得代码更加的高大上。下面是位运算的一些使用。(注意:下面的例子中位运算都是作用于整数上的,在java中就是int类型的数,至于小数,位运算有没有用?怎么用?不在此讨论。)一:判断奇偶:判断一个整数是奇数还是偶数最常见的方法应该是取余(%)f...

2019-03-05 15:02:26 350

原创 对象或数组的深度克隆

let obj={ arr:[1,{ aaa:'aaa' },3]}let deepCopyObject=function(obj){ switch(['[object Object]', '[object Array]'].indexOf(Object.prototype.toString.call(obj))){ case 0: obj={...obj...

2019-02-22 17:50:47 249

原创 vue组件之间的双向绑定

方法一:model 选项//父组件代码:<template> <div> <child v-model="num"></child>{{num}} </div></template><script>import child from './child'expor

2019-02-16 13:21:20 849

原创 js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框

问题:js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框?方案一:这个问题通常的办法是使用阻止事件冒泡来实现,代码如下(省略css): <body> <button id="btn1" onclick="alertBoxFn();stopBubble()">打开弹窗</button> <div id="alertBox" onc

2019-01-15 18:16:40 7249

空空如也

空空如也

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

TA关注的人

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