- 博客(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
686
原创 判断闰年
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
176
原创 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
686
原创 阶乘
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
125
原创 设置元素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
288
原创 js实现抽象工厂模式
class Circle { constructor() { this.shape = "circle" }}class Rectangle { constructor() { this.shape = "rectangle" }}class ShapeFactory { constructor() {} getShapeInstance(shapeType) { ...
2019-03-28 11:46:41
469
原创 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
666
原创 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
1192
原创 小程序onPageNotFound的坑
App.onPageNotFound和wx.onPageNotFound用来监听小程序要打开的页面不存在事件。这里有一个坑就是,如果在小程序里面使用wx.navigateTo等路由Api进行页面跳转,如果页面不存在只会报错,并不会触发onPageNotFound。onPageNotFound有一个使用场景就是,当扫码登录的页面不存在时可以重定向到另一个存在的页面。App({ on...
2019-03-27 14:26:33
6249
转载 微信小程序版本更新提示
App({ onLaunch:function(){ //版本更新提示 let updateManager= wx.getUpdateManager() updateManager.onUpdateReady(function () { wx.showModal({ title: '版本更新提示'...
2019-03-27 10:44:21
589
原创 VScode自动编译Typescript
安装typescriptnpm install -g typescript使用cmd到达项目目录下, 使用下列命令进行初始化,创建tsconfig.json 文件tsc -init打开tsconfig.json文件修改相应配置,可以直接使用如下配置{ "compilerOptions": { "target": "es5", "noImplicitAny"...
2019-03-22 12:00:33
930
原创 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
6724
原创 去重
数组去重在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
228
原创 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
105
原创 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
2406
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
114
原创 赋值运算符返回等号右边的值
下面的例子是一个关于this指向的陷阱var obj={ fun:function(){console.log(this);}};(obj.fun)();//输出obj对象(obj.fun=obj.fun)();//输出window对象这个例子的输出结果出乎意料,要想明白这其中的奥妙,我们要弄明白赋值运算符('=')的特性.。在此之前,我们先来认识一个属性——writabl...
2019-03-18 16:01:17
1216
原创 微信小程序请求拦截器
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
6220
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
511
原创 用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
131
转载 观察者模式
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
106
原创 装饰模式
let plane={ fire:()=>{ console.log("发射炮弹") }}let fireMissile=()=>{ console.log("发射导弹")}let fireAtomicBomb=()=>{ console.log("发射原子弹")}let fire1=plane.fireplane....
2019-03-08 00:45:46
80
原创 求数列连续项的和的最大值
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
1119
原创 按位运算的骚操作
程序中的所有数在计算机内存中都是以二进制的形式存储的。位运算就是直接对整数在内存中的二进制位进行操作。所以使用位运算的效率更高。并且位运算显得代码更加的高大上。下面是位运算的一些使用。(注意:下面的例子中位运算都是作用于整数上的,在java中就是int类型的数,至于小数,位运算有没有用?怎么用?不在此讨论。)一:判断奇偶:判断一个整数是奇数还是偶数最常见的方法应该是取余(%)f...
2019-03-05 15:02:26
387
原创 对象或数组的深度克隆
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
276
原创 vue组件之间的双向绑定
方法一:model 选项//父组件代码:<template> <div> <child v-model="num"></child>{{num}} </div></template><script>import child from './child'expor
2019-02-16 13:21:20
899
原创 js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框
问题:js实现点击按钮时显示弹框,点击按钮及弹框以外的区域时隐藏弹框?方案一:这个问题通常的办法是使用阻止事件冒泡来实现,代码如下(省略css): <body> <button id="btn1" onclick="alertBoxFn();stopBubble()">打开弹窗</button> <div id="alertBox" onc
2019-01-15 18:16:40
7373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人